我完全理解在标签上使用“for”属性的好处。我想这是关于 HTML 规范本身的问题:为什么创作者想要将标签与 ID 匹配,而不是在字段上使用“名称”属性?
无论如何,该字段的名称应该是唯一的,对吧?那么,为什么在 99% 的情况下,字段 ID 最终与字段名称直接匹配时,为什么要向字段添加另一个属性和额外的 HTML?
编辑
在单选按钮的情况下,正如你们中的许多人所说,名称不是唯一的,但在这种情况下,您不需要标签的“for”元素,因为您可以将label
字段本身包裹起来,正确?
该name
属性并不总是唯一的:单选按钮通常共享相同的name
.
编辑
输入可以包装在标签中,这是有效的。但是可以想到您不能或不想包装标签的情况。例如,如果标签与其他 HTML 的输入分开。
这个名字不是唯一的我的朋友!就像单选按钮 btw ;) 所有选择器都基于 ID。
例子:
<fieldset>
<label for="radio1">
<input type="radio" name="allRadios" id="radio1">
<label for="radio2">
<input type="radio" name="allRadios" id="radio2">
</fieldset>
JavaScript 函数:
document.getElementsByName("allRadios") 给出一个数组,即使只有一个名为 radio 的元素,而 document.getElementById("radio1") 给出一个 DOM 元素。
例子: