Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:禁用除当前复选框之外的所有复选框_Javascript_Jquery_Html_Checkbox - Fatal编程技术网

Javascript jQuery:禁用除当前复选框之外的所有复选框

Javascript jQuery:禁用除当前复选框之外的所有复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我有一些复选框,它们需要以类似于单选按钮控件的方式进行操作。基本上,当一个被选中时,所有其他的都需要被取消选中。我如何在尽可能少的痛苦下实现这一点 总结一下。如果选中某个复选框,则必须取消选中所有其他(同级)复选框,使单击的一个复选框状态保持不变 我已经知道如何取消选中所有复选框,但如果我这样做,我必须首先存储选中复选框的选中状态,然后在取消选中所有复选框后重新应用它。我想知道是否有一种方法可以使用一些奇特的jQuery选择器或类似的工具来实现这一点。使用单选按钮。说真的,单选按钮的存在是有原因

我有一些复选框,它们需要以类似于单选按钮控件的方式进行操作。基本上,当一个被选中时,所有其他的都需要被取消选中。我如何在尽可能少的痛苦下实现这一点

总结一下。如果选中某个复选框,则必须取消选中所有其他(同级)复选框,使单击的一个复选框状态保持不变


我已经知道如何取消选中所有复选框,但如果我这样做,我必须首先存储选中复选框的选中状态,然后在取消选中所有复选框后重新应用它。我想知道是否有一种方法可以使用一些奇特的jQuery选择器或类似的工具来实现这一点。

使用单选按钮。说真的,单选按钮的存在是有原因的。人们期望单选按钮是“n取1”选择,复选框是“0到n”选择

不管怎样,代码如下:

$('input:checkbox').click(function() {
    $(this).siblings('input:checkbox').removeAttr('checked');
});
演示:

但是,请仅在您确实需要允许用户取消选中所有内容时使用它。那么它是可以接受的-否则单选按钮会更好。

试试这个:

$(':checkbox').not( selector_for_current ).attr('checked', false);
$(function() {
    $("input[type=checkbox]").click(function(){
        $(this).siblings("input[type=checkbox]:not(this)").attr("checked", "");
    });
});
其中,
selector\u for\u current
是“current one”,如果您在回调中,通常是
this

尝试以下方法:

$(':checkbox').not( selector_for_current ).attr('checked', false);
$(function() {
    $("input[type=checkbox]").click(function(){
        $(this).siblings("input[type=checkbox]:not(this)").attr("checked", "");
    });
});

请参阅。

作为ThiefMaster非常好的回答的替代方法,您可以在父窗体上注册事件并捕获所有复选框,包括嵌套在字段集中(或其他元素)的复选框,这些复选框将使用“兄弟”忽略


演示:

check我知道怎么做,我真的在寻找比存储原始复选框的状态然后重新应用它更好的方法。我确信他使用这些复选框是有充分理由的。这真的是一个评论,而不是一个答案。-我的-1感谢你最终的帮助。我在发布“评论”半分钟后就把答案包括进去了。;)谢谢你的建议,但这是不合适的使用它们为我的工作application@Thief不需要
。不需要(这个)
this
元素不是
$(this)的一部分。兄弟姐妹()
。我需要使用
$(this)
还是只使用
this
就足够了,因为它在jQuery函数中?让它工作起来了-很棒的代码谢谢-这正是我想要的
this
是DOM元素(在事件处理程序等内部),
$(this)
是jQuery对象。作为
.not()
参数,DOM元素是非常好的。