考虑以下示例:
<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失败了?我做错了什么吗?
答案 0 :(得分:4)
修改此
<form action="process.php" id="myForm">
到这个
<form action="process.php" name="myForm">
因为DOM表单集合不是名称,所以要使用表单名称进行访问,需要将name属性添加到标记中。这将允许以下陈述起作用。
document.forms["myform"]
document.forms.myform
document.myform
答案 1 :(得分:0)
显然Chrome和IE将表单绑定到document
。这不是标准的AFAIK。
> foo = 1
> window.foo
1
getElementById
是正确的方法。虽然document.forms.myForm
对我也有用。