单选按钮组与可点击标签

25

据我了解,要使单选按钮的标签可点击,必须将两个元素的"name"属性值赋为相同的值。

我的问题是,当你有多个单选按钮时,比如一个“是或否”的选择。为了使其中一个被选中时另一个被禁用,需要让这两个单选按钮的"name"属性都具有相同的值。

这两个目标是否可以同时实现?

<label for="no">No</label> 
<input type="radio" name="no" value="no" />

<label for="yes">Yes</label> 
<input type="radio" name="yes" value="yes" />
2个回答

46

id(而不是name)属性应该由label的for属性引用。应该像这样:http://jsfiddle.net/zzsSw/

<label for="no">No</label> 
<input type="radio" name="mygroup" id="no" value="no" />

<label for="yes">Yes</label> 
<input type="radio" name="mygroup" id="yes" value="yes" />

1
有道理。现在我可以为这两个元素分配正确的名称了吗?http://jsfiddle.net/zzsSw/1/ - user120944

38

您也可以不使用ID编写标签:

<label>
  <input type="radio" name="mygroup" />
  My clickable caption
</label>

或复选框

<label>
  <input type="checkbox" name="mygroup[]" />
  My clickable caption
</label>

5
这个答案比我的好。 - Ish
我不同意这是更好的做法。如果你必须支持旧版IE,可以通过document.getElementById查找带有名称的元素,它将同时搜索ID和名称。请参见http://msdn.microsoft.com/en-us/library/ie/ms536437(v=vs.85).aspx中的备注。如果你仍然需要支持IE7或更低版本(即使你支持IE10但在IE7标准模式下等),你应该在这些元素上同时添加名称和ID。 - Brian Arnold Sinclair
我写了很多这样的HTML,现在后悔了。我看不到任何明显的方法来编程地重新定位例如表格布局的标题。 - Cuadue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接