选中/取消选中所有复选框

2024-06-20

我见过很多选中/取消选中所有复选框的脚本。但大多数人并不尊重这一点:如果我使用“全部选中”复选框切换所有复选框,然后取消选中列表中的单个复选框,则“全部选中”复选框仍处于选中状态。

有没有一种优雅的方式来处理这种情况?


$('#checkAll').click(function() {
    if(this.checked) {
        $('input:checkbox').attr('checked', true);
    }
    else {
        $('input:checkbox').removeAttr('checked');
    }
});

$('input:checkbox:not(#checkAll)').click(function() {
    if(!this.checked) {
        $('#checkAll').removeAttr('checked');
    }
    else {
        var numChecked = $('input:checkbox:checked:not(#checkAll)').length;
        var numTotal = $('input:checkbox:not(#checkAll)').length;
        if(numTotal == numChecked) {
            $('#checkAll').attr('checked', true);
        }
    }
});

Demo: http://jsfiddle.net/ThiefMaster/HuM4Q/ http://jsfiddle.net/ThiefMaster/HuM4Q/

正如问题评论中所指出的,常规复选框并不完美。我的实现一旦禁用“检查全部”框one复选框未选中。因此,要取消选中所有仍选中的复选框,您必须单击两次(首先重新选中未选中的复选框,然后取消选中所有其他复选框)。 但是,对于三态复选框,这可能仍然是必要的,因为状态顺序可能是未选中->不确定->选中->未选中,因此您需要单击两次才能从不确定变为未选中。


由于您可能不想使用“全部选中”来选中页面上的所有复选框,因此请将input:checkbox例如.autoCheckBox or input.autoCheckBox:checkbox并给出这些复选框class="autoCheckBox".

如果您希望所有复选框都在某种形式内,只需使用#idOfYourForm input:checkbox or form[name=nameOfYourForm] input:checkbox

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选中/取消选中所有复选框 的相关文章

随机推荐

  • 基于 JPA 注释生成 ERD(实体关系图)的工具

    我正在使用 ormlite 编写 java 代码 我想知道是否可以从代码中的 JPA 注释生成 ERD 基本上 我需要相反的情况 如何将基于实体的图转换为 JPA java 代码 https stackoverflow com questi
  • 如何使用 KClass 反射在 Kotlin 中区分类和接口

    我正在使用 Kotlins KClass 按名称查找类 如下所示 val i KClass lt gt Class forName SampleClass kotlin 但是 我想省略接口 到目前为止 我通过构造函数区分接口和类 val i
  • Wagtail 自定义管理

    我是 Wagtail 和 Django 开发的新手 如何更改 Wagtail 管理页面的颜色 根据一些问答 我可以通过 core css 更改颜色 但是扫描代码需要很多时间 有一个更简单的方法 您可以注册 Wagtail Hook 在此处阅
  • 当用户打开文件时如何锁定对文件的访问?

    我正在编写一个 C NET 程序 该程序使用 XmlSerializer 对当前用户正在处理的项目与 XML 文件进行序列化和反序列化 这工作正常 但我试图找到一种方法来防止两个用户从网络驱动器打开同一个文件并让一个用户覆盖前一个用户的保存
  • 求不同数量的双打中的平均值

    我有一个双精度数组列表 我需要找到所有数字之间的平均值 arraylist 中 Double 实例的数量不是恒定的 可能是 2 也可能是 90 我已经尝试了几个小时来自己获取算法 但无论如何都无法让它工作 你有什么建议吗 或者也许你可以将我
  • xpath/xslt 确定上下文节点相对于所有同名节点的索引?

    给定下面的模式 以 查询 节点作为上下文 是否可以使用 xpath xslt 确定该 查询 节点相对于文档中所有 查询 节点的索引 而不是相对于其的position 直系兄弟姐妹 TIA Geoff section section
  • Datagrip 中缺少 Git 集成插件?

    有一些我不明白的东西 我在 DataGrip 2016 3 3 JetBrains IDE 中找不到 Git 集成 插件 PyCharm 安装在同一台计算机上 并且具有 Git 集成插件 我还在另一台机器上安装了 DataGrip 插件 但
  • 在 NUnit 测试中使用 WPF 组件 - 如何使用 STA?

    我需要在 NUnit 单元测试中使用一些 WPF 组件 我通过 ReSharper 运行测试 在使用 WPF 对象时失败并出现以下错误 系统 InvalidOperationException 调用线程必须是 STA 因为许多 UI 组件都
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • ALLOWED_HOSTS 在部署到 Elastic Beanstalk 的 Django 应用程序中不起作用

    我将 Django 应用程序部署到 AWS Elastic Beanstalk 即使我已将其添加到允许的主机设置中 我仍收到 无效的 HTTP HOST 标头 错误 我收到此错误 Invalid HTTP HOST header recor
  • C# 获取子窗口句柄

    我正在用 C 启动一个进程 然后使用 SendMessage 将 Windows 消息发送到该进程 通常我将消息发送到 Process MainWindowHandle 但在某些情况下 我可能需要找到子窗口句柄并向那里发送消息 我将如何在
  • 如何在 MVC3 Razor 视图中呈现数据表

    我在 xls 电子表格 1 之间有一个可靠且经过测试的导入方法 该方法返回DataTable 我已将其定位在我的服务层中 而不是数据中 因为只有工作簿作为上传文件保存 但现在我想知道在哪里以及如何生成此内容的 HTML 表示形式DataTa
  • NSUInteger 的奇怪行为 - 无法正确转换为浮动

    这是我的情况 这让我发疯 我有一个计数值为 517 的 NSMutableArray 我有一个双精度值 它是我的乘数 double multiplier 0 1223 double result myArray count multipli
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • 如何在C Sharp中使用unity3d从url下载文件并保存在位置?

    我正在从事 unity3d 项目 我需要从服务器下载一组文件 我使用 C 编写脚本 经过一个小时的谷歌搜索后 由于文档不完善 我还没有找到解决方案 谁能给我从 url 下载文件并将其保存在 unity3d 中的特定位置的示例代码 Unity
  • OpenCV OpenNI 校准kinect

    我使用 home 通过 kinect 进行捕捉 capture retrieve depthMap CV CAP OPENNI DEPTH MAP capture retrieve bgrImage CV CAP OPENNI BGR IM
  • Flutter:带有嵌套导航的底部导航栏,并在选项卡更改时恢复根页面

    我是 Flutter 开发的新手 我已经阅读了多个教程来了解底部导航栏 我已经尝试过这些教程 但无法达到我的要求 我遵循的教程 https codewithandrea com articles multiple navigators bo
  • 无法在 Swift 中对闭包进行弱引用

    Update 我试着不弱化地写一下 好像也没有漏的情况 所以也许这个问题已经没有必要了 在 Objective C ARC 中 当你想让一个闭包能够在闭包内部使用它自己时 该块不能捕获对自身的强引用 否则它将是一个保留循环 因此您可以使闭包
  • IE7 显示问题:菜单中的表格

    我写了一个菜单样式 在 IE8 FF3 6 GC7 中运行良好 现在的问题是 我的老板希望它甚至可以在 IE7 上运行 我真的很努力地让它在 IE7 上运行 但无法获得相同的外观 menu css a outline none menu m
  • 选中/取消选中所有复选框

    我见过很多选中 取消选中所有复选框的脚本 但大多数人并不尊重这一点 如果我使用 全部选中 复选框切换所有复选框 然后取消选中列表中的单个复选框 则 全部选中 复选框仍处于选中状态 有没有一种优雅的方式来处理这种情况 checkAll cli