JavaScript处理表单,这个数组符号是如何工作的?

JavaScript处理表单,这个数组符号是如何工作的?,javascript,forms,Javascript,Forms,在下面的代码中,这一行对我来说有点奇怪: var x=document.forms["myForm"]["fname"].value; 网页: <html> <head> <script type="text/javascript"> function validateForm() { var x=document.forms["myForm"]["fname"].value; if (x==null || x=="") { alert("First

在下面的代码中,这一行对我来说有点奇怪:

var x=document.forms["myForm"]["fname"].value;
网页:

<html>
<head>
<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
}
</script>
</head>

<body>

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">

First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>

</body>

</html>

函数validateForm()
{
var x=document.forms[“myForm”][“fname”].value;
如果(x==null | | x==“”)
{
警告(“必须填写姓名”);
返回false;
}
}
名字:
这是怎么回事?多维数组在哪里?谢谢

这:

var x=document.forms["myForm"]["fname"].value;
与以下内容完全相同:

var x = document.forms.myForm.fname.value;
事实上,没有理由(在本例中)以这样的方式编写它

现在,如果不是这两个字符串常量——“myForm”和“fname”——而是有某种计算或获取名称的动态机制,那么第一种形式是有意义的。
[]
运算符允许计算表达式以确定要访问的属性名称

顺便说一下,本例中根本没有涉及数组。仅对象属性引用。

是特殊的,因为它有一个接口,可以通过将属性作为数字索引(零基)或“name”属性查找来标识文档中的所有表单


此外,还有一个类似的功能,允许您按输入元素(和其他表单小部件)的名称作为属性进行查找。

非常感谢Maerics!我现在正在研究Mozilla参考资料,非常有帮助。