按类别检查单选按钮

时间:2018-08-08 14:19:23

标签: jquery radio-button radio checked

$(".test").each(function(i) {
  this.checked = true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value="1" name="radio" class="test" id="tr1" />
<input type="radio" value="1" name="radio" class="radio" id="tr2" />


<input type="radio" value="1" name="radio" class="radio2" id="tr3" />
<input type="radio" value="1" name="radio" class="test" id="tr4" />
<button class="button">Click</button>

我有两组单选按钮,我希望默认选中“测试”类。

我现在该如何处理单选按钮,因为我们现在只能勾选一个单选按钮

2 个答案:

答案 0 :(得分:1)

通过definition,单选按钮是一组<input>元素,它们共享相同的name,具有开箱即用的行为,即当选中其中一个时,它们会给出包含由其公用<form>定义的name命名空间,并自动取消选择具有相同name的任何其他单选按钮。

它是专门针对此用例设计的(允许用户从多个选项中选择一个)。

如果您的方案要求允许用户选择多个,则

  • 使用不同的name属性,
  • 使用<input type="checkbox">
  • <select>元素与multiple="true"一起使用

总而言之:无论您做什么,任何体面的浏览器都不允许您在同一<input type="radio">元素中选择多个具有相同name的{​​{1}}。通过任何方法。而且,即使理论上可行,尝试获取该名称空间的值也会失败。

单选按钮就像汉兰达:“只能有一个”。

答案 1 :(得分:1)

您应该以不同的方式命名这两个集合,因为如果它们都被命名为radio,则一次只能检查其中之一。只需在下面的示例中将第二组重命名为radio2之类的其他名称,然后这些组将彼此独立工作。

$(".test").each(function(i) {
  this.checked = true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value="1" name="radio" class="test" id="tr1" />
<input type="radio" value="1" name="radio" class="radio" id="tr2" />


<input type="radio" value="1" name="radio2" class="radio2" id="tr3" />
<input type="radio" value="1" name="radio2" class="test" id="tr4" />
<button class="button">Click</button>