名称属性在HTML文档中必须是唯一的吗?
我记得曾经在规范中读到,名称属性在HTML文档中必须是唯一的吗?,html,unique,Html,Unique,我记得曾经在规范中读到,id属性和name属性共享相同的名称空间,并且必须是唯一的。从今以后,我一直试图在我的应用程序中满足这一要求,甚至害怕给同一个元素赋予相同的id和name 但是最近我开始使用ASP.NET MVC 3,它(像PHP一样)可以在几个输入控件上使用相同的name属性来形成服务器端的值集合。我试图查找规范中的相关部分,但没有找到。也许我误解了什么,或者读错了文档 那怎么样?我想产生尽可能有效的HTML(4.01和5在不同的应用程序)。我能毫无畏惧地使用这个技巧吗?或者我会违反某
id
属性和name
属性共享相同的名称空间,并且必须是唯一的。从今以后,我一直试图在我的应用程序中满足这一要求,甚至害怕给同一个元素赋予相同的id
和name
但是最近我开始使用ASP.NET MVC 3,它(像PHP一样)可以在几个输入控件上使用相同的name
属性来形成服务器端的值集合。我试图查找规范中的相关部分,但没有找到。也许我误解了什么,或者读错了文档
那怎么样?我想产生尽可能有效的HTML(4.01和5在不同的应用程序)。我能毫无畏惧地使用这个技巧吗?或者我会违反某些规则,最好坚持使用唯一的值?属性仅在
和表单元素(
,
和
)上有效。它用于指定要与表单帖子上提交的名称/值对关联的名称
例如:
<input type="checkbox" name="foo" value="1" />
注意:即使只找到一个元素,它也总是返回一个数组
id
属性来自XML世界,是任何节点的唯一id,而不仅仅是表单元素。与name
属性不同,它在任何HTML节点上都有效。与name
属性一样,它必须遵循有效的标识符规则。标识符应该以alpha开头,并且只包含alpha([a-zA-Z]
)、数字、连字符、下划线和冒号(注意ASP.NET通过以下划线开头保留ID打破了这一规则-因此它们将始终无法通过HTML/XML lint-实际上有些代理会将其删除)。要通过id
查找任何HTML元素,请使用:
document.getElementById(idvalue)
这只返回一个DOM节点。属性
name
不是唯一的。例如,它用于对单选按钮进行分组。它表示特定表单属性的值<代码>id必须是唯一的。id应该是唯一的,但是您可以使用多个具有相同名称的表单元素。这是单选按钮工作方式的标准,因此您可以强制选择单选按钮组。Ahh!似乎我错过了上下文。:)实际上,name
属性适用于少数其他元素,但它只是复制了id
属性,如果两者都定义了,实际上必须与之相等。幸运的是,这不适用于表单元素。:)需要注意的是,
还使用锚文本的name属性。html5中的id和name可以包含空格以外的任何字符,但必须至少包含一个字符:
document.getElementById(idvalue)