В конечном итоге, если вы можете позволить себе недвижимость, я бы вместо этого использовал радио кнопки или флажки и позволял им выбирать только 2 флажка максимум. Для меня выпадающие не работают в этой ситуации
Однако, если у вас нет недвижимости и вы должны использовать выпадающие списки, тогда вам лучше всего выбрать значение в первом раскрывающемся списке, отключить или удалить его во втором раскрывающемся списке и т. П. наоборот (если они выбирают значение в первом). Я бы порекомендовал отключить, а не удалять, поскольку пользователю будет более очевидно, что происходит.
<select id="subject1" onchange="updateSelect(this,'subject2');" name="indication_subject[]">
<option value="" selected="selected">a </option>
<option value="1"> Accounting</option>
<option value="2"> Afrikaans</option>
<option value="3"> Applied Information and Communication Technology</option>
<option value="4"> Arabic</option>
<option value="5"> Art and Design</option>
<option value="6"> Biology</option>
<option value="7"> Business Studies</option>
</select>
<select id="subject2" name="indication_subject[]" onchange="updateSelect(this,'subject1');" >
<option value="" selected="selected">a </option>
<option value="1"> Accounting</option>
<option value="2"> Afrikaans</option>
<option value="3"> Applied Information and Communication Technology</option>
<option value="4"> Arabic</option>
<option value="5"> Art and Design</option>
<option value="6"> Biology</option>
<option value="7"> Business Studies</option>
</select>
Тогда JS, который идет с ним
function updateSelect(changedSelect, selectId) {
var otherSelect = document.getElementById(selectId);
for (var i = 0; i < otherSelect.options.length; ++i) {
otherSelect.options[i].disabled = false;
}
if (changedSelect.selectedIndex == 0) {
return;
}
otherSelect.options[changedSelect.selectedIndex].disabled = true;
}
Единственная проблема в том, что IE 7 и более ранние версии не поддерживают отключение. Если это нарушает условия сделки, вам придется удалить опцию из «Другой выбор», а затем заменить ее позже. Единственная проблема в том, что это изменит порядок параметров, если вы не обновите весь список. Чтобы обновить весь список, вам нужно будет хранить опции и значения в массиве (вроде модели), который никогда не изменяется и используется для обновления выбора, когда происходит событие изменения.