"options.length" - есть null или не являться объектом

smike

Новичок
"options.length" - есть null или не являться объектом

PHP:
function isOption(value)
{
	var list=document.getElementById('zones');
	var i;
	if(list.options.length)
	{
		for(i=0; i<list.options.length; i++)
		{
			if(list.options[i].value==value)
				return true;
		}
	}
	return false;
}
Функция должна проверять наличие опшина со занчением value в селектбоксе с id="zones"
Работает во всех браузерах кроме гребанного ИЕ.
ИЕ ругается: "options.length" - есть null или не являться объектом
 

smike

Новичок
Автор оригинала: fixxxer
list.options && list.options.length ? :)
Спасибо :)

Оказывается трабл в ИЕ возникал изза того что на форме был hidden с name="zones"
Как только я его переименовал ИЕ "выздоровел" и проверка if(list.options.length) проходит нормально.
Вот такая вот "фича" ИЕ :)
 

-SkyNet-

Новичок
лучше обзнакомиться с полным списком зарезервированных слов ;)

а вообще, хорошим тоном является организация собственного пространства имен. оно может быть заключено в объект, либо в глобальную перемнную/объект, например window.someVariableName
 

-SkyNet-

Новичок
smike за 8 лет экспериментов html+js встретился с такими приколами как резервированные слова JS в id и/или class, которые при некоторых конструкциях JS (например, выражения с точечной нотацией), приводят к коллапсу.
 

smike

Новичок
Автор оригинала: -SkyNet-
smike за 8 лет экспериментов html+js встретился с такими приколами как резервированные слова JS в id и/или class, которые при некоторых конструкциях JS (например, выражения с точечной нотацией), приводят к коллапсу.
Это понятно, а мой случай тут причем?
 

dacino

Новичок
Это понятно, а мой случай тут причем?
переменных у тебя две: i и list, и какая же из них совпадает с зарезервированным словом? тут подумать надо, что б ответить
 

smike

Новичок
Причем тут list? Проблема была в том что ИЕ по getElementById('zones') получал не <select id="zone"> а <hidden name="zone">. А у хиддена конечно-же нет никаких options поэтому ИЕ и матерился на отсутствие объекта.

http://developer.mozilla.org/ru/docs/Core_JavaScript_1.5_Reference:Reserved_Words:Зарезервированные_слова_JavaScript

И где тут list?

-~{}~ 09.07.08 10:17:

Автор оригинала: dacino
тут подумать надо, что б ответить
Это уж точно, перед тем как отвечать в форуме надо думать...
 
Сверху