Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Обработка JS в FireFox (https://javascript.ru/forum/css-html-firefox-mizilla/81-obrabotka-js-v-firefox.html)

Andrey_Ugnich 10.12.2007 09:34

Обработка JS в FireFox
 
Здравствуйте,
у меня такой код:
function check_form(){
var fields = Array('surname','name','birthdate_day','birthdate_year','country','city','address','index','city_code','phone','email');
for(i=0; i<fields.length; i++){
  if (document.getElementById(fields[i]).value==''){
    alert('Все поля обязательны для заполнения.');
    document.getElementById(fields[i]).focus();
  return false;
  }
}
return true;
}

проверяет, все ли поля формы заполнены перед отправкой.
Если ошибок нет, то
document.getElementById('SubmitBtn').disabled=false
,
где 'SubmitBtn' - кнопка отправки, неактивная по умолчанию.

В IE и Opera - все прекрасно отрабатывает, а вот в FireFox, в консоли ошибок:
Ошибка: document.getElementById(fields[i]) has no properties

Почему так? Почему он не подставляет значение из массива, а подставляет 'fields[i]'?

Илья Кантор 10.12.2007 22:59

Лучше for(var i...), а не for(i ...)

Кроме того, не var fields = Array ..., а
var fields = ['surname','name',...,'email']


Поправьте и попробуйте еще раз.

Andrey_Ugnich 11.12.2007 16:30

Сделал квадратные скобки и получил ошибку в строке:
for(var i=0; i<fields.length; i++){


"length" есть null или не является объектом в IE,
Ошибка: fields has no properties в Мозилле.

:confused: ???

Илья Кантор 11.12.2007 19:43

var fields = ['surname','name','email']
alert(fields.length)

Вот такой пример у меня работает и честно выводит 3. В мозилле.

Andrey_Ugnich 12.12.2007 15:06

Хочу уточнить: под мозиллой мы понимаем Mozilla Firefox 2.0.x.x.x?

Вобщем, вариант с описанием массива квадратными скобочками не работает ни в Firefox, ни в IE.

Нашел проблему: среди списка полей у меня в массиве есть country, которая представляет из себя выпадающий список. так вот на этом списке скрипт и останавливается.

Как же проверить выбрано ли что либо в выпадающем списке, кроме как:
if (document.getElementById(fields[i]).value==''){
alert('Выберите страну');
}

?
По умолчанию там стоит:
<select name="country">
<option value="" selected="selected">----- Выберите Вашу страну ------</option>
... (тут список) ...
</select>

Илья Кантор 12.12.2007 17:57

selectedIndex свойство посмотри.

Вот кстати MSDN-линк на него http://msdn2.microsoft.com/en-us/library/ms534624.aspx

Andrey_Ugnich 13.12.2007 07:08

Нашел, в чем была проблема: отсутсвовал ID. Я и не заметил.
Правильно так:
<select name="country" id="country">
<option value="" selected="selected">----- Выберите Вашу страну ------</option>
... тут список стран ...
</select>


Спасибо за помощь.

Гость 21.06.2008 17:15

используй var massive=new Array("","","...")


Часовой пояс GMT +3, время: 08:23.