代码如下:
<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>
这是验证表单必填项的其中有一行代码有疑问,就是:var x=document.forms["myForm"]["fname"].value
我知道意思是取得name为myForm表单中的name为fname标签中的值
但是这代码怎么会是这样的?forms是一个表单集合,后面[]中应该是数字的呀,怎么会可以是name???而且后面还可以再加一个["fname"]
太疑惑了,我在w3c教程上没看过这种格式的书写

解决方案 »

  1.   

    var x=document.forms["myForm"]["fname"].value比如有多个form
    forms["myForm"]就可以根据名字取的相应的form
    在根据这个["fname"]获取这个form里名字为fname的元素
    就是forms["myForm"]["fname"].value
      

  2.   

    var x=document.forms["myForm"]["fname"].value可以这么写forms是个键值对形式的,既可以用键也就是值[0]也可以用值['myForm']其实这种形式document.forms["myForm"]["fname"].value就是document.myForm.fname.value这样你想想js对象不就是这种形式吗
    var obj = {'name':'aa'};可以obj.name
    也可以obj['name']
      

  3.   

    可以这样的
    类似于child那种方法都可以
    不过有些是[]
    有些是.
      

  4.   

    那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
    <html>
    <head>
    <script type="text/javascript">
    function mouseOver()
      {
      document.b1.src ="/i/eg_mouse.jpg"
      }
    function mouseOut()
      {
      document.b1.src ="/i/eg_mouse2.jpg"
      }
    </script>
    </head><body>
    <a href="http://www.w3school.com.cn" target="_blank">
    <img border="0" alt="Visit W3School!" src="/i/eg_mouse2.jpg" name="b1"
    onmouseOver="mouseOver()"
    onmouseOut="mouseOut()" />
    </a>
    </body>
    </html>
      

  5.   

    因为document就是文档对象,他值得就是html文档~·所以document.可以通过.标签的name属性访问节点
      

  6.   

    如果document.可以直接通过标签的name属性访问节点,那document.getElementByName("name")[0]不就无意义了吗?
      

  7.   


    怎么会没意义呢?
    document.getElementByName("name")拿的是name相同的集合而你document.name只能拿单个
      

  8.   

    为什么我这段代码没有效果??
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var a=document.aaa.innerHTML;
    alert(a)
    </script>
    </head><body>
    <div>
    <p>123</p>
    <a href="#" name="aaa">321</a>
    </div>
    </body>
    </html>
      

  9.   

    <a href="#" name="aaa">321</a>a标签好像不行,因为a标签的name有特殊意义,是锚点~·
      

  10.   

    用途 1:  作为可与服务器交互数据的 HTML 元素的服务器端的标示,比如 input 、 select 、 textarea 、和 button 等。我们可以在服务器端根据其 Name 通过 Request.Params 取得元素提交的值。  用途 2:  HTML 元素 Input type='radio' 分组,我们知道 radio button 控件在同一个分组类, check 操作是 mutex 的,同一时间只能选中一个 radio ,这个分组就是根据相同的 Name 属性来实现的。
      用途 3:  建立页面中的锚点,我们知道 <a href="URL">link</a> 是获得一个页面超级链接,如果不用 href 属性,而改用 Name ,如: <a name="PageBottom"></a> ,我们就获得了一个页面锚点。
      用途 4:  作为对象的 Identity ,如 Applet 、 Object 、 Embed 等元素。比如在 Applet 对象实例中,我们将使用其 Name 来引用该对象。
      用途 5:  在 IMG 元素和 MAP 元素之间关联的时候,如果要定义 IMG 的热点区域,需要使用其属性 usemap ,使 usemap="#name"( 被关联的 MAP 元素的 Name) 。
      用途 6:  某些特定元素的属性,如 attribute ,和 param 。例如为 Object 定义参数 <PARAM NAME = "appletParameter" VALUE = "value"> 。
      

  11.   

    document.name只能用在上面这些元素上才行~·
      

  12.   

    哭了,就算是换成p元素,然后是用ID来选取,也没有效果了
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var a=document.getElementById("bbb").innerHTML;
    alert(a)
    </script>
    </head><body>
    <div>
    <p id="bbb">123</p>
    <a href="#" id="aaa">321</a>
    </div>
    </body>
    </html>
      

  13.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title></head><body>
    <div>
    <p id="bbb">123</p>
    <a href="#" id="aaa">321</a>
    </div>
    <script type="text/javascript">
    var a=document.getElementById("bbb").innerHTML;
    alert(a)
    </script>
    </body>
    </html>
    把script标签放在最下面