массив options для select (в IE)
Добрый день.
Подскажите, пожалуйста, почему IE не понимает массив options для элемента select? :( Во всех остальных браузерах код работает правильно. function remake(){ formEl=d.getElementById('boxname'); for(var j in formEl.options) { formEl.options[j].disabled=true; } } IE пишет "объект не поддерживает это свойство или метод" и ставит указатель в начало строки formEl.options[j].disabled=true; Что делать? Как все-таки добраться до элементов списка? Полный код: Код:
<html> |
В IE нет такого свойства у option (disabled).
А почему бы просто не скрывать элементы списка? Или disabled делать к select, если это возможно. Так же вот немного инфы по этому. |
Весь список-то делать неактивным не нужно. Именно, что какие-то из элементов должны остаться активными, а какие-то - нет.
В принципе не критично, можно и скрывать вместо того, чтобы делать неактивными, однако и такой вариант не проходит. Заменив formEl.options[j].disabled=true; На formEl.options[j].style.display='none'; Получаю ответ: Код:
Сообщение: 'formEl.options[...].style' - есть null или не является объектом P.P.S спасибо за ссылку |
Кстати, что интересно...
свойство disabled-то в целом работает. Если получать по id именно <option>, то оно вполне себе становится неактивным. Т.е. проблема возникает именно в момент попытки использовать массив options <html> <head></head> <body> <script type="text/javascript"> var d = document; function test(){ formEl=d.getElementById('id2'); formEl.disabled=true; } </script> <form id="filterform"> <select name="imyaboksa" id="boxname" > <option value=''>не важно</option> <option value="1" id="id1">field1</option> <option value="2" id="id2">field2</option> <option value="3" id="id3">field3</option> </select> </form> <br /><br /><br /><br /> <a href="#" onclick="test();">test</a> </body></html> |
А ты проверял в ie ниже 8? там не работает:)
|
:( и правда не работает
|
Извлекайте ненужные элементы из select
http://webmaster.ee/javascript/JavaScript/options.html |
Octane,
Remove(), это, конечно хорошо. Проблема в том, что их потом надо как-то возвращать обратно. Add() - слишком громоздко для такой мелкой задачи. |
Что там громоздкого? Храните ссылки на все option в массиве и когда нужно удаляйте все, и добавляйте только нужные.
|
Часовой пояс GMT +3, время: 23:24. |