Есть ли способ узнать, какую форму для отправки тега?
<form method="POST" action="submit.php">
<select id="id1" name="sel1" onchange="this.form.submit()">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
</select>
<select id="id2" name="sel2" onchange="this.form.submit()">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
</select>
</form>
Не-jQuery-решение предпочтительнее, но не обязательно...
PS Проблема заключается в том, что selected="select"
атрибут selected="select"
генерируется динамически (я не знаю, какая опция будет выбрана по умолчанию - так что я не могу сравнивать значение по умолчанию с представленным)
Первое, что приходит на ум, - это скрытое поле со значением, которое вы задали. Что-то подобное должно делать.
<form method="POST" action="submit.php">
<input type="hidden" name="submitselect" value="" id="submitselect">
<select id="id1" name="sel1" onchange="document.getElementById('submitselect').value='sel1';this.form.submit()">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
</select>
<select id="id2" name="sel2" onchange="document.getElementById('submitselect').value='sel2';this.form.submit()">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
</select>
</form>
В качестве альтернативы вы можете выбрать вариант по умолчанию, например
<option value="" selected>-</option>
Это никогда не было бы выбрано иначе. Таким образом, этот параметр не будет отменен при select
который не вызвал бы отправку.
selected="selected"
.