首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >名称属性在HTML文档中必须是唯一的吗?

名称属性在HTML文档中必须是唯一的吗?
EN

Stack Overflow用户
提问于 2011-04-02 04:26:44
回答 3查看 36.4K关注 0票数 68

我记得有一次在规范中读到,id属性和name属性共享相同的名称空间,并且必须是唯一的。从此以后,我总是试图在我的应用程序中满足这一要求,甚至不敢给同一个元素提供相同的idname

但是最近我开始使用PHPVMVC3,它(像ASP.NET一样)可以在几个输入控件上使用相同的name属性在服务器端形成一个值集合。我试图在规范中查找相关部分-但没有找到。也许我误解了什么,或者读错了文档?

那是怎么回事呢?我想产生尽可能有效的HTML ( 4.01和5在不同的应用程序)。我能毫无畏惧地使用这个技巧吗?或者我是否违反了某些东西,应该更好地坚持独特的价值观?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-02 04:32:19

name属性仅在<form>和表单元素(<input><textarea><select>)上有效。它用于指定与表单post中提交的名称/值对相关联的name

例如:

代码语言:javascript
复制
<input type="checkbox" name="foo" value="1" />

如果选中,将提交foo=1。在DOM中,可以通过将name指定为索引来引用form.elements集合中的表单元素。如果name不是唯一的,集合将返回一个元素数组,而不是元素。现代DOM支持按名称查找表单元素,如下所示:

代码语言:javascript
复制
 document.getElementsByName(nameValue)

注意:即使只找到一个元素,它也总是返回一个数组。

id属性来自XML界,对于任何节点都是惟一的id,而不仅仅是表单元素。与name属性不同,它在任何HTML节点上都是有效的。与name属性一样,它也必须遵循有效的标识符规则。标识符应该以字母开头,并且只包含字母([a-zA-Z])、数字、连字符、下划线和冒号(注意,ASP.NET打破了这一规则,保留的ID以下划线开头-因此它们总是无法通过HTML/XML实际上是一些代理将它们剥离)。要通过id查找任何超文本标记语言元素,可以使用:

代码语言:javascript
复制
document.getElementById(idvalue)

这只返回一个DOM节点。

票数 62
EN

Stack Overflow用户

发布于 2011-04-02 04:32:37

name属性不是唯一的。例如,它用于对单选按钮进行分组。它表示特定表单属性的值。id%s必须是惟一的。

票数 24
EN

Stack Overflow用户

发布于 2011-04-02 04:33:19

ID应该是唯一的,但您可以使用多个同名的表单元素。这是单选按钮工作方式的标准,因此您可以强制选择一个单选按钮组。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5518458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档