глюк selectedIndex в Opera
Есть два выпадающих списка, в каждом по 16 значений. Есть две функции, которые проверяют, какое значение выбрано в одном и в другом списке. Суть всего этого в том, чтобы человек не мог выбрать два значения , в двух списках, общей суммой больше 16. Изначально мы видим два списка по 16 значений. Если в одном выберем 10, то во втором списке удалится часть значений, и выбрать можно будет только до 6.
Чтобы человека не мучить, я сделал, чтобы, если выбираем одно значение в одном списке, то во втором списке активным остается то, которое было активным, а не сбрасылало бы на «0». Для этого было добавлено условие на проверку selectedIndex. Во всех браузерах все работает, но в Опере (проверяю на 11.51), если выбрать любое значение в первом списке, когда во втором выбрано «0», то во втором автоматом ставится значение «1». И выходит, что после того, как вы начали что-то вообще выбирать, то вы не сможете установить оба значения на «0». Код function getcamout (){ var selOut = document.getElementById("coutcam2"); var selIn = document.getElementById("coutcam1"); selOut.options.length=17-parseInt(selIn.value); for (i=0; i<selOut.options.length; i++) if (selOut.options[selOut.selectedIndex].value != -1){ if (selOut.options[selOut.selectedIndex].value == i){ selOut.options[i] = new Option(i, i, false, true); }else{ selOut.options[i] = new Option(i, i); } }else{ selOut.options[i] = new Option(i, i); } } function getcamin (){ var selOut = document.getElementById("coutcam2"); var selIn = document.getElementById("coutcam1"); selIn.options.length=17-parseInt(selOut.value); for (i=0; i<selIn.options.length; i++) if (selIn.options[selIn.selectedIndex].value != -1){ if (selIn.options[selIn.selectedIndex].value == i){ selIn.options[i] = new Option(i, i, false, true); }else{ selIn.options[i] = new Option(i, i); } }else{ selIn.options[i] = new Option(i, i); } Не сочтите за тупого, только начал постигать яваскрипт, и, как это часто бывает, постигаю сразу в работе. |
Вопрос закрыт. Все решилось проверкой активного элемента ДО for.
|
Часовой пояс GMT +3, время: 12:55. |