首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery:禁用除当前复选框外的所有复选框

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

Stack Overflow用户
提问于 2011-02-09 00:49:44
回答 4查看 6.6K关注 0票数 3

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

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-09 00:51:42

说真的,单选按钮的存在是有原因的。人们期望单选按钮是"1 of n“选择,而复选框是"0 to n”选择。

不管怎样,下面是代码:

代码语言:javascript
运行
复制
$('input:checkbox').click(function() {
    $(this).siblings('input:checkbox').removeAttr('checked');
});

演示:http://jsfiddle.net/ThiefMaster/AVEjt/

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

票数 10
EN

Stack Overflow用户

发布于 2011-02-09 00:52:42

试试这个:

代码语言:javascript
运行
复制
$(':checkbox').not( selector_for_current ).attr('checked', false);

其中selector_for_current是“当前的”,如果你在回调中,通常是this

票数 2
EN

Stack Overflow用户

发布于 2011-02-09 00:57:01

试试这个:

代码语言:javascript
运行
复制
$(function() {
    $("input[type=checkbox]").click(function(){
        $(this).siblings("input[type=checkbox]:not(this)").attr("checked", "");
    });
});

参见example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4935819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档