在Firefox中从DOM访问表单元素的问题

时间:2011-11-14 19:26:01

标签: javascript firefox dom

考虑以下示例:

<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抱怨错误:“找不到id myForm”

为了实现这个目的,我用document.getElementById('myForm')。elements替换了myForm.elements。它在我测试过的三个浏览器中运行良好。

我很想知道为什么FF失败了?我做错了什么吗?

2 个答案:

答案 0 :(得分:4)

修改此

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

到这个

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

因为DOM表单集合不是名称,所以要使用表单名称进行访问,需要将name属性添加到标记中。这将允许以下陈述起作用。

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

以下是一些参考http://www.quirksmode.org/js/forms.html

答案 1 :(得分:0)

显然Chrome和IE将表单绑定到document。这不是标准的AFAIK。

> foo = 1
> window.foo
1

getElementById是正确的方法。虽然document.forms.myForm对我也有用。