我有一些复选框,它们需要以类似于单选按钮控件的方式工作。本质上,当一个被选中时,所有其他的都需要取消选中。我如何才能在尽可能少的痛苦中实现这一点呢?
所以总结一下。如果选中了某个复选框,则必须取消选中所有其他(同级),使单击的one复选状态保持不变。
我已经知道如何取消选中所有复选框,但如果我这样做,我必须首先存储选中的复选框的选中状态,然后在取消选中所有复选框后重新应用它。我想知道是否有一些花哨的jQuery选择器或类似的方法可以做到这一点。
发布于 2011-02-09 00:51:42
说真的,单选按钮的存在是有原因的。人们期望单选按钮是"1 of n“选择,而复选框是"0 to n”选择。
不管怎样,下面是代码:
$('input:checkbox').click(function() {
$(this).siblings('input:checkbox').removeAttr('checked');
});
演示:http://jsfiddle.net/ThiefMaster/AVEjt/
但请仅当您实际需要允许用户取消选中所有内容时才使用它。这是可以接受的--否则单选按钮会更好。
发布于 2011-02-09 00:52:42
试试这个:
$(':checkbox').not( selector_for_current ).attr('checked', false);
其中selector_for_current
是“当前的”,如果你在回调中,通常是this
。
发布于 2011-02-09 00:57:01
试试这个:
$(function() {
$("input[type=checkbox]").click(function(){
$(this).siblings("input[type=checkbox]:not(this)").attr("checked", "");
});
});
参见example。
https://stackoverflow.com/questions/4935819
复制相似问题