Проблемы с доступом к элементам формы из DOM в Firefox - PullRequest
0 голосов
/ 14 ноября 2011

Рассмотрим следующий пример:

<form action="process.php" id="myForm">
 ..... 
 ....... all my form elements
</form>

Я впервые получил доступ к своим элементам формы следующим образом:

function verifyForm() {
    var frm_elements = myForm.elements;
    //do something here
}

Приведенный выше код хорошо работал с последними версиями Chrome и Internet Explorer. Однако с Firefox это всегда не удавалось. FF пожаловался на ошибку: «Не удалось найти идентификатор myForm»

Чтобы это работало, я заменил myForm.elements элементами document.getElementById ('myForm'). Все три браузера, которые я тестировал, работали нормально.

Мне просто любопытно узнать, почему это не сработало на FF? Я сделал что-то не так?

Ответы [ 2 ]

4 голосов
/ 14 ноября 2011

изменить это

<form action="process.php" id="myForm">

на это

<form action="process.php" name="myForm">

Поскольку коллекция форм DOM работает без имени, поэтому для доступа с использованием имени формы необходимо добавить атрибут имени втегЧто позволит работать следующим утверждениям.

document.forms["myform"]
document.forms.myform
document.myform

Вот некоторая ссылка http://www.quirksmode.org/js/forms.html

0 голосов
/ 14 ноября 2011

Видимо, Chrome и IE связывают формы с document.Это не стандарт AFAIK.

> foo = 1
> window.foo
1

getElementById - верный путь.Хотя document.forms.myForm у меня тоже работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...