Есть два выпадающих списка, в каждом по 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);
}
Не сочтите за тупого, только начал постигать яваскрипт, и, как это часто бывает, постигаю сразу в работе.