在下面的代码中,这一行对我来说有点奇怪:
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>
这是如何工作的?多维数组在哪里?感谢
答案 0 :(得分:1)
此:
var x=document.forms["myForm"]["fname"].value;
与:
完全相同var x = document.forms.myForm.fname.value;
事实上,没有理由(在这种情况下)以它的方式书写。
现在,如果不是那两个字符串常量 - “myForm”和“fname” - 有一些动态机制计算或获取名称,那么第一个形式是有道理的。 [ ]
运算符允许计算表达式以确定要访问的属性名称。
顺便说一下,这个例子中根本没有涉及任何数组。只是对象属性引用。
答案 1 :(得分:1)
document.forms
object是特殊的,因为它有一个接口,通过查找属性作为数字索引(基于零)或“名称”属性来识别文档中的所有表单。
此外,form
object具有类似的功能,允许您通过名称作为属性查找输入元素(和其他表单小部件)。