我记得有一次在规范中读到id
属性和name
属性共享相同的命名空间并且必须是唯一的。从今以后,我一直试图在我的申请中满足这一要求,甚至害怕给出同样的要求id
and name
到同一个元素。
但最近我开始使用 ASP.NET MVC 3,它(像 PHP)可以使用相同的name
多个输入控件上的属性,以在服务器端形成值的集合。我试图查找规范中的相关部分 - 但未能找到它。也许我误解了一些东西,或者阅读了错误的文档?
那怎么样呢?我想生成尽可能有效的 HTML(4.01 和 5 在不同的应用程序中)。我可以毫无恐惧地使用这个技巧吗?或者我是否会违反某些规定并且应该更好地坚持独特的价值观?
The name
属性仅在<form>
和表单元素(<input>
,<textarea>
and <select>
)。它用于指定name
与在表单帖子上提交的名称/值对关联。
例如:
<input type="checkbox" name="foo" value="1" />
如果选中将提交foo=1
。在 DOM 中,您可以从以下位置引用表单元素:form.elements
通过指定集合name
作为索引。如果name
不唯一,集合返回元素数组而不是元素。现代 DOM 支持按名称查找表单元素,如下所示:
document.getElementsByName(nameValue)
注意:即使只找到一个元素,它也始终返回一个数组。
id
属性来自 XML 世界,并且是任何节点的唯一 ID,而不仅仅是表单元素。不像name
属性在任何 HTML 节点上都有效。也喜欢name
属性,它必须遵循有效的标识符规则。标识符应以 alpha 开头,并且仅包含 alpha ([a-zA-Z]
)、数字、连字符、下划线和冒号(请注意 ASP.NET 通过以下划线开头保留 ID 来打破此规则 - 因此它们始终无法通过 HTML/XML lint - 实际上某些代理会删除它们)。通过以下方式查找任何 HTML 元素id
你用:
document.getElementById(idvalue)
这只返回一个 DOM 节点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)