Select/Deselect All Checkboxes

Code share time! The following demo is about how to select/deselect all checkboxes, like this,

Using jQuery:

<div>
    <input type="checkbox" id="SelectAll" />check all<br />
    <input type="checkbox" name="sub" />1<br />
    <input type="checkbox" name="sub" />2<br />
    <input type="checkbox" name="sub" />3<br />
    <input type="checkbox" name="sub" />4<br />
</div> 
$("#SelectAll").click(function () {
            $("input[name=‘sub‘]").prop("checked", this.checked);
        });

        $("input[name=‘sub‘]").click(function () {
            var $subs = $("input[name=‘sub‘]");
            $("#SelectAll").prop("checked", $subs.length == $subs.filter(":checked").length ? true : false);
        });

Using Knockout:

<div>
    <input type="checkbox" data-bind="checked: SelectAll" />check all<br />
    <!-- ko foreach: $data.Items -->
    <input type="checkbox" data-bind="checked: Selected" /><!-- ko text: Id --> <!-- /ko --> <br />
    <!-- /ko -->
</div> 
        function ViewModel() {
            var self = this;

            self.Items = ko.observableArray([new Item(1), new Item(2), new Item(3), new Item(4)]);
            self.SelectAll = ko.pureComputed({
                read: function () {
                    var obj = ko.utils.arrayFirst(self.Items(), function (_item) {
                        return !_item.Selected();
                    });
                    return obj == null;
                },
                write: function (value) {
                    ko.utils.arrayForEach(self.Items(), function (_item) {
                        _item.Selected(value);
                    });
                }
            });
        }

        var Item = function (id) {
            this.Id = id;
            this.Selected = ko.observable(false);
        }

        ko.applyBindings(new ViewModel());

With using Knockout, you should note these:

1.Virtual DOM elements bindings

2.Utility functions in Knockout

Reference:

http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html

https://visualstudiomagazine.com/articles/2013/09/01/essential-knockoutjs-part-2.aspx

时间: 2024-08-10 23:27:50

Select/Deselect All Checkboxes的相关文章

selenium docs

Note to the Reader - Docs Being Revised for Selenium 2.0! Introduction Test Automation for Web Applications To Automate or Not to Automate? Introducing Selenium Brief History of The Selenium Project Selenium’s Tool Suite Choosing Your Selenium Tool S

AspxGridView使用手记

AspxGridView使用手记 一.  基本使用方法  4 1.导入Dll文件   4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明    5 4.删除licenses.licx协议文件(盗版)   5 5.功能概述  5 二.  绑定数据(单层)    5 1.使用DataSource属性绑定DataTable 5 2.使用DataSourceID属性绑定SqlDataSource   6 3.使用DataSourceID属性绑定ObjectDataSource   

Install Checkstyle in Eclipse

Plugin installation To install the Checkstyle for Eclipse plugin: In Eclipse, click on Help -> Install New Software... Click on Add.. Enter the following: Name: Checkstyle URL:http://eclipse-cs.sourceforge.net and click OK. You should see Checkstyle

Unity4.6新UI系统初探(uGUI)

一.引言 Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频).事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统.本文试图通过初步的介绍和试用,让读者对这套系统有大体的了解,以便更进一步评估这套UI系统好不好用,适合用在什么项目.为了避免坑挖太深,更进一步的试用和评估我将在<用uGUI开发自定义Toggle Slider控件>中进行论述.为论述方便,下文将这套New UI System简称为uGUI,并且以X-UI指代现有第三

[转]个人源码管理:如何在本机配置自己的SVN Repository (图解)

本文转自:http://blog.csdn.net/wikijava/article/details/6245588 Repository 即源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等.SVN最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突.对于个人开发来说,虽然不存在并发修改冲突的问题,但个人源码可以使用到SVN的版本控制功能,以便找到开发过程中的版本记录.一般个人没有条件也没必要搭一个独立

linux(vi)多行注释和取消注释.

//comment1,'ctrl+v' to VISUAL BLOCK mode.2,'j' or 'k' to select/deselect lines.3,'I' to INSERT mode.4,'#' and 'ESC'. //uncommentstep '1','2' are the same.'d'.

TortoiseGit的使用方法

TortoiseGit工具百度一下就可以下载的到的 当然,在安装这个图形化工具之前先要安装一下git 安装完成成后右键就会多出几个选项 如图: 下面正式开始介绍我们这个工具的使用方法 pull代码: 1. 新建一个文件夹,用于储存自己pull下来的代码,我这里新建一个git文件夹 2. 右键刚才新建的文件夹,选择git clone 就会出现下面的界面. 路径添写自己的, Branch 填入 android , Key 导入 自己的key即可.完成之后点击 OK 此时会自动 拉取代码 ,在你刚建的

perl DBD Informix install and test

1.安装Informix_Client_SDK 1)root用户登录,添加informix home目录.组.用户 # mkdir -p /opt/informix # groupadd informix # useradd -G informix -d /opt/informix informix # passwd informix # chown informix -R /opt/informix # chmod 775 -R /opt/informix 2)安装Informix_Clien

安装并使用 iDRAC 服务模块

DELL服务器,Integrated Dell Remote Access Controller 8/7 默认增加了iDRAC Service Module,但是根据官方文档,这个功能默认是没有打开,需要在服务器上安装. 未安装前方法如下: 1.在DELL支持网站根据设备的SN搜索,得到如下页面 2.下载工具,得到如下安装包 3.解压到系统的指定目录,执行setup.sh 开始会有一个协议说明,选择yes后如下 ##########################################