我记得有一次在规范中读到,id
属性和name
属性共享相同的名称空间,并且必须是唯一的。从此以后,我总是试图在我的应用程序中满足这一要求,甚至不敢给同一个元素提供相同的id
和name
。
但是最近我开始使用PHPVMVC3,它(像ASP.NET一样)可以在几个输入控件上使用相同的name
属性在服务器端形成一个值集合。我试图在规范中查找相关部分-但没有找到。也许我误解了什么,或者读错了文档?
那是怎么回事呢?我想产生尽可能有效的HTML ( 4.01和5在不同的应用程序)。我能毫无畏惧地使用这个技巧吗?或者我是否违反了某些东西,应该更好地坚持独特的价值观?
发布于 2011-04-02 04:32:19
name
属性仅在<form>
和表单元素(<input>
、<textarea>
和<select>
)上有效。它用于指定与表单post中提交的名称/值对相关联的name
。
例如:
<input type="checkbox" name="foo" value="1" />
如果选中,将提交foo=1
。在DOM中,可以通过将name
指定为索引来引用form.elements
集合中的表单元素。如果name
不是唯一的,集合将返回一个元素数组,而不是元素。现代DOM支持按名称查找表单元素,如下所示:
document.getElementsByName(nameValue)
注意:即使只找到一个元素,它也总是返回一个数组。
id
属性来自XML界,对于任何节点都是惟一的id,而不仅仅是表单元素。与name
属性不同,它在任何HTML节点上都是有效的。与name
属性一样,它也必须遵循有效的标识符规则。标识符应该以字母开头,并且只包含字母([a-zA-Z]
)、数字、连字符、下划线和冒号(注意,ASP.NET打破了这一规则,保留的ID以下划线开头-因此它们总是无法通过HTML/XML实际上是一些代理将它们剥离)。要通过id
查找任何超文本标记语言元素,可以使用:
document.getElementById(idvalue)
这只返回一个DOM节点。
发布于 2011-04-02 04:32:37
name
属性不是唯一的。例如,它用于对单选按钮进行分组。它表示特定表单属性的值。id
%s必须是惟一的。
发布于 2011-04-02 04:33:19
ID应该是唯一的,但您可以使用多个同名的表单元素。这是单选按钮工作方式的标准,因此您可以强制选择一个单选按钮组。
https://stackoverflow.com/questions/5518458
复制相似问题