无法在Firefox中调用Form元素

时间:2011-11-13 22:45:03

标签: javascript html forms firefox html-table

我不熟悉如何调试此类问题。在我的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 个答案:

答案 0 :(得分:2)

您假设具有name属性的任何内容都将获得匹配的全局变量。这是非标准行为。

您无论如何都不应该提供表单名称属性,请参阅规范:

  

请注意。包含此属性是为了向后兼容。应用程序应使用id属性来标识元素。

因此,首先使用id替换name属性。

<form id="myForm">

然后您可以通过以下方式访问表单:

document.getElementById('myForm')

document.forms.myForm

答案 1 :(得分:1)

我不确定为什么你的Firefox没有显示任何警报;但是你应该检查Firefox错误控制台。只需单击地址栏并按键盘上的 Alt 键即可突出显示系统菜单;在工具下 - &gt; Web开发人员 - &gt;通过Web控制台,您将能够在加载时看到页面上遇到的所有JavaScript,HTML和CSS错误。

-

请确保您在JavaScript中引用该表单:

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

或者,您可以使用其名称引用表单(并不总是有效!)

myForm = document.forms.myForm;