Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка с elements
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Ошибка с elements

Страниц (1): [1]
 

1. Vanu4 - 16 Января, 2009 - 13:56:16 - перейти к сообщению
Подскажите плз как можно обойти все поля формы не используя конструкцию elements[]. Проблема в том, что IE выдает ошибку, что, мол, document.registration.elements[х] не имеет значения.
В скрипте делается проверка:
for (x=0; x<document.registration.length; x++) {
if (document.registration.elements[x].name != "email") document.registration.elements[x].disabled=true;
}
2. Champion - 16 Января, 2009 - 14:00:06 - перейти к сообщению
Я обычно пользуюсь getElementById, и назанчаю элементам соответствующие id. Может быть это и не совсем правильно
3. EuGen - 16 Января, 2009 - 14:10:00 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //x<document.registration.elements.length - Вы, похоже, забыли дописать массив elements к условию for:
  4. for (x=0; x<document.registration.elements.length; x++)
  5. {
  6.    if (document.registration.elements[x].name != "email")
  7.    {
  8.       document.registration.elements[x].disabled=true;
  9.    }
  10. }
  11. ?>
  12.  
4. Vanu4 - 16 Января, 2009 - 14:19:08 - перейти к сообщению
EuGen пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //x<document.registration.elements.length - Вы, похоже, забыли дописать массив elements к условию for:
  4. for (x=0; x<document.registration.elements.length; x++)
  5. {
  6.    if (document.registration.elements[x].name != "email")
  7.    {
  8.       document.registration.elements[x].disabled=true;
  9.    }
  10. }
  11. ?>
  12.  

Какой массив? Цикл перебирает название каждого элемента формы и если оно не равно email, то элемент становится не активным.
5. Champion - 16 Января, 2009 - 14:23:11 - перейти к сообщению
Кстати, да. Во-первых, еlements - массив, а во вторых, вам как раз его количество элементов и нужно
6. Vanu4 - 19 Января, 2009 - 14:03:46 - перейти к сообщению
Вопрос все-таки остался открытым. Как же можно заменить конструкцию document.имя-формы.elements[]? В IE эта конструкция вызывает ошибку.
7. valenok - 19 Января, 2009 - 14:13:08 - перейти к сообщению
DOM: elem.childNodes()
8. Vanu4 - 19 Января, 2009 - 14:36:07 - перейти к сообщению
valenok пишет:
DOM: elem.childNodes()

А можно немного подробней: как написать массив, который будет обходить все элементы в определенной форме.
9. valenok - 19 Января, 2009 - 14:42:18 - перейти к сообщению
http://developer[dot]mozilla[dot]org/en/[dot][dot][dot]ement[dot]childNodes

 

Powered by ExBB FM 1.0 RC1