массив 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, время: 14:44. |