我记得曾经在规范中读过id
属性和name
属性共享相同的命名空间并且必须是唯一的.从此以后,我总是试图在我的应用程序中满足这个要求,即使给予相同id
和name
相同的元素也要害怕.
但是最近我开始使用ASP.NET MVC 3,它(像PHP一样)可以name
在几个输入控件上使用相同的属性,在服务器端形成一组值.我试图查找规范中的相关部分 - 但未能找到它.也许我误解了一些东西,或者读错了文档?
怎么回事呢?我想生成尽可能有效的HTML(在不同的应用程序中都是4.01和5).我可以毫无畏惧地使用这个技巧吗 或者我会违反某些内容并且应该更好地坚持独特的价值观?
Kol*_*ten 50
该name
属性仅对<form>
和表单元素(<input>
,<textarea>
和<select>
)有效.它用于指定name
与表单帖子上提交的名称/值对相关联.
例如:
<input type="checkbox" name="foo" value="1" />
Run Code Online (Sandbox Code Playgroud)
如果选中则会提交foo=1
.在DOM中,您可以form.elements
通过将其指定name
为索引来引用集合中的表单元素.如果name
不是唯一的,则集合返回元素数组而不是元素.现代DOM支持按名称查找表单元素:
document.getElementsByName(nameValue)
Run Code Online (Sandbox Code Playgroud)
注意:即使只找到一个元素,它也总是返回一个数组.
id
属性来自XML世界,并且是任何节点的唯一ID,而不仅仅是表单元素.与name
属性不同,它在任何HTML节点上都有效.与name
属性一样,它必须遵循有效的标识符规则.标识符应以alpha开头,并且只包含alpha([a-zA-Z]
),数字,连字符,下划线和冒号(注意ASP.NET通过使用下划线启动保留ID来破坏此规则 - 因此它们将始终使HTML/XML lint失败 - 实际上一些代理剥离他们).要查找任何HTML元素,id
请使用:
document.getElementById(idvalue)
Run Code Online (Sandbox Code Playgroud)
这只返回一个DOM节点.
归档时间: |
|
查看次数: |
29851 次 |
最近记录: |