есть вот такой скрипт.
последовательность действий, чтобы понять в чём мой вопрос:
1. открываем страницу в ИЕ6
2. щёлкаем по February
3. первый алерт - сколько дней нужно сделать во втором выпадающем списке.
второй алерт - сколько сейчас элементов во втором выпадающем списке.
третий алерт - сколько стало элементов после работы js-функции.
4. щёлкаем по "length" - видим сколько сейчас элементов во втором списке.
Получили что хотели - второй список изменился с 31 элемента на 28.
То же самое делаем в ФФ.
Всё работает без проблем.
А теперь в Опере (у меня Version 9.25 Build 8827)
Второй список приобретает множество пустых элементов!
Как это пофиксить?
Код:
<script type="text/javascript">
function createDate(days, slot){
var day_num = 31;
if(days == 1 || days == 3 || days == 5 || days == 7 || days == 8 || days == 10 || days == 12) day_num = 31;
if(days == 4 || days == 6 || days == 9 || days == 11) day_num = 30;
if(days == 2) day_num = 28;
alert(day_num)
alert(document.getElementById(slot).options.length)
document.getElementById(slot).options.length = day_num;
alert(document.getElementById(slot).options.length)
for(i=0; i<32; i++)
if(i < day_num){
document.getElementById(slot).options[i] = new Option(i+1,i+1);
}
else{
document.getElementById(slot).options[i] = null;
}
}
</script>
<select id="date_month" name="date_month" onchange="createDate(this.options[this.selectedIndex].value, 'date_day');" >
<option value='1'>January</option>
<option value='2'>February</option>
<option value='3'>March</option>
<option value='4'>April</option>
<option value='5'>May</option>
<option value='6'>Juny</option>
<option value='7'>July</option>
<option value='8'>August</option>
<option value='9'>September</option>
<option value='10'>October</option>
<option value='11'>November</option>
<option value='12'>December</option>
</select>
<select id="date_day" name="date_day">
<script language="javascript">
for(i=0; i<31; i++)
document.getElementById('date_day').options[i] = new Option(i+1,i+1);
</script>
</select></p>
<span onclick="alert(document.getElementById('date_day').options.length)">lenght</span>