我有一个想要做这一个正当的理由,但它是一个很长的故事,所以我会忘记试图解释为什么,只是问,如果是确定的事情。
我有一个页面,我需要有多个同名的形式,但我只希望其提交按钮单击提交表单。 例如,下面可能是我的网页上:
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
text
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
text
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
这是可以接受的?
关于HTML 4.01 specication,您可以使用form
元素具有相同name
的属性,因为有没有对他们的唯一要求。 这样做违背了这些属性的目的,虽然。 这意味着它们是为了更容易指在客户端脚本的形式:如果你有<form name=foo>
然后document.foo
指形式。
它是不确定的,当同样会发生什么name
使用属性,但是浏览器似乎做的是返回数组。 在您的示例, document.foo
将是一个3元素数组, document.foo[0]
是第一种形式。 但是,这是没有用的,因为(假设没有其他形式的文件中),你可以使用document.forms[0]
有一个明确的含义。
该name
属性本身也是过时的form
元素(但不包括表单字段,它一直是必不可少的)。 在对HTML 4.01规范条款form
表示:
“ name
= CDATA [CI]此属性名称的元件,以便它可以由样式表或脚本引用。 注意。 此属性已被列入了向后兼容性。 应用程序应使用id
属性来标识元素“。
在HTML5草案,即使是正式规则不允许使用相同的name
属性。 在对HTML5条款name
的属性form
表示,其值“必须是唯一之中form
的元素forms
集合,它是,如果有的话”。 这是一个令人困惑的提法,但它是最安全的假设,它必须是内唯一form
的文档元素。
是的,它是允许的,只有id
的必须是唯一的。 我不会推荐它然而,为什么还要把自己放在一个位置,以混淆的道路。
的name
属性只定义了每个表单字段元件将被表示当发送到服务器。
也正是在HTML5确定。 只有名称必须是形式本身内是独一无二的。
请参阅该文档:“值不能为空字符串,并将其值必须在形式的集合,它是,如果任何形式的元素当中是独一无二的。”
当用户点击提交按钮,只有形式将采取的行动。 不过,这应该是更好的给它们命名,这样你是不是糊涂了:)