Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2007, 09:34
Новичок на форуме
Отправить личное сообщение для Andrey_Ugnich Посмотреть профиль Найти все сообщения от Andrey_Ugnich
 
Регистрация: 10.12.2007
Сообщений: 4

Обработка 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]'?
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2007, 22:59
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

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

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


Поправьте и попробуйте еще раз.
Ответить с цитированием
  #3 (permalink)  
Старый 11.12.2007, 16:30
Новичок на форуме
Отправить личное сообщение для Andrey_Ugnich Посмотреть профиль Найти все сообщения от Andrey_Ugnich
 
Регистрация: 10.12.2007
Сообщений: 4

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


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

:confused: ???

Последний раз редактировалось Andrey_Ugnich, 11.12.2007 в 16:35.
Ответить с цитированием
  #4 (permalink)  
Старый 11.12.2007, 19:43
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

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

Вот такой пример у меня работает и честно выводит 3. В мозилле.
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2007, 15:06
Новичок на форуме
Отправить личное сообщение для Andrey_Ugnich Посмотреть профиль Найти все сообщения от Andrey_Ugnich
 
Регистрация: 10.12.2007
Сообщений: 4

Хочу уточнить: под мозиллой мы понимаем 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>

Последний раз редактировалось Andrey_Ugnich, 13.12.2007 в 07:09.
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2007, 17:57
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

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

Вот кстати MSDN-линк на него http://msdn2.microsoft.com/en-us/library/ms534624.aspx
Ответить с цитированием
  #7 (permalink)  
Старый 13.12.2007, 07:08
Новичок на форуме
Отправить личное сообщение для Andrey_Ugnich Посмотреть профиль Найти все сообщения от Andrey_Ugnich
 
Регистрация: 10.12.2007
Сообщений: 4

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


Спасибо за помощь.
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2008, 17:15
Гость
 
Сообщений: n/a

используй var massive=new Array("","","...")
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Mozilla Firefox 3.0 проблемма с Javascript меню artmedia Элементы интерфейса 1 07.09.2008 10:43
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44
опубликуйте пожалуйста функционал JS scuter Сайт Javascript.ru 21 05.06.2008 17:44
подключение стороннего js скрипта friend Общие вопросы Javascript 2 24.05.2008 19:51