我有一个非常简单的问题-我在想-但我自己无法解决。
我有两个复选框:
一个值为Yes,另一个值为No。
我需要某种脚本来帮助我在选中另一个脚本时取消选中它。因此,如果我选中复选框。 1-复选框号。 2自动被取消选中-反之亦然。必须始终选中其中一个复选框,并且只有一个。不,在这种情况下,我无法使用单选按钮。
如果可以在jQuery中完成,那就太好了-但任何帮助都可以:)
提前致谢
罗伯特
最佳答案
我想到的最简单的方法是:
$('input:checkbox').change(
function(){
var group = this.name;
$(this).siblings('input:checkbox[name="'+ group + '"][checked]').removeProp('checked');
});
JS Fiddle demo。
但是有一些警告,以上使用
removeProp()
,仅限于jQuery 1.6(及更高版本)。在1.6之前的版本中,应该可以用removeAttr('checked')
代替。但是,请重新考虑使用
<input type="radio" />
元素,这正是它们旨在处理和使用的元素。编辑来自Robert的以下评论(在下面的评论中):
我按计划进行了此操作,但是...在我的表单中,我还有另一组复选框,尽管名称完全不同,但它们也受到了限制。但是我需要用户能够选择多个这些复选框中的一个。该脚本似乎会影响所有复选框组。我实际上认为,通过输入name =“'+ group +'”可以将功能限制于那些以“ group”开头的复选框。但这似乎并非如此。
分配
change
事件处理程序的选择器是$('input:checkbox')
,它选择/应用于页面上的所有复选框。要将其仅应用于特定组中的那些复选框,可以使用:
$('input:checkbox[name="checkboxGroupName"]').change(
function(){
$(this).siblings().removeProp('checked');
});
参考文献:
:checkbox
。change()
。siblings()
。attribute-equals selector。
removeProp()
。