Не могу вызвать элемент формы в Firefox - PullRequest
1 голос
/ 14 ноября 2011

У меня проблемы с тем, что я не слишком разбираюсь в том, как отлаживать такие проблемы.В моем HTML, скажем, у меня есть форма:

<form name="myForm" >
   <table>       
    <tr>
     <td>
       <input type="radio" name="myType" value="val" onclick="someFunc(this.value)"checked > stuff here
       <input type="radio" name="myType" value="val2" onclick="someFunc(this.value)"> stuff2 here
     </td>
    ..
</form>

В коде Javascript я ссылаюсь на это следующим образом:

myForm.myType[0].checked

В IE это работает нормально, но не в Firefox.В Firefox я попытался:

alert (myForm)

, а также:

if (frmDateType == null)
{
    alert('null!');
}
else
{
    alert('not null!');
}

Однако в обоих этих случаях Firefox даже не отображает предупреждение, он в основном ничего не делает, хотя это нормальнов IE.Я установил Firebug, и он не показывает никаких ошибок (или, по крайней мере, я не могу их найти).Так что я не уверен, как отладить такую ​​проблему, почему я не вижу ошибок и почему Firefox не любит MyForm?Какие-нибудь советы?

Ответы [ 2 ]

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

Вы предполагаете, что что-либо с атрибутом имени получит глобальную переменную, которая соответствует. Это нестандартное поведение.

Вы все равно не должны давать атрибуты имени формы, см. Спецификацию:

Примечание. Этот атрибут был включен для обратной совместимости. Приложения должны использовать атрибут id для идентификации элементов.

Итак, сначала замените атрибут имени идентификатором.

<form id="myForm">

И тогда вы можете получить доступ к форме через:

document.getElementById('myForm')

или

document.forms.myForm
1 голос
/ 14 ноября 2011

Я не уверен, почему ваш Firefox не отображает никаких предупреждений; но вы должны проверить консоль ошибок Firefox. Просто нажмите в адресной строке и нажмите клавишу Alt на клавиатуре, чтобы выделить системное меню; в разделе Инструменты -> Веб-разработчик -> Веб-консоль вы сможете увидеть все ошибки JavaScript, HTML и CSS, обнаруженные на странице во время загрузки.

-

Пожалуйста, убедитесь, что вы ссылаетесь на форму в JavaScript:

myForm = document.getElementById("myForm"); // This requires the form to have an id.

Кроме того, вы можете ссылаться на форму, используя ее имя (не всегда работает!)

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