zoukankan      html  css  js  c++  java
  • jquery選取所有checkbox和判斷是否全部checkbox已經被勾選

    前言 勾選/取消勾選 全部勾選checkbox的時候 勾選/取消勾選 所有對應的checkbox 當所有對應checkbox有別勾選的時候, 全部勾選checkbox 也要被勾選 完整程式碼範例 前言

    在做網頁的時候常常遇到的是列表清單。而通常列表必須提供checkbox來供使用者選取之後在做相對應的動作。因此,前端處理checkbox觸發變的很常用。

    這一篇我會介紹兩個常用jquery的snippet來達到:

    勾選/取消勾選 全部勾選checkbox的時候 勾選/取消勾選 所有對應的checkbox 當所有對應checkbox有別勾選的時候, 全部勾選checkbox 也要被勾選 勾選/取消勾選 全部勾選checkbox的時候 勾選/取消勾選 所有對應的checkbox

    首先,我們假設我們有一個form裡面是一個table清單代表著人名和歲數。在Table的標題裡面有一個checkAll checkbox表示是否要全選每一列的checkbox。

    有了這個概念,我們直接看一下程式碼:

    //When the all checkbox is clicked
    $('#checkAll').change(function() {
    
        //get all checkbox which want to change
        var checkboxes = $(this).closest('form')
                   .find('input[name="chkPerson"]:checkbox');
    
        if($(this).is(':checked')) {
            checkboxes.prop('checked', 'checked');
        } else {
            checkboxes.removeAttr('checked');
        }
    
    });

    應該滿好理解,首先找到所有對應的checkbox,判斷我們checkAll是處於勾選還是取消勾選,把這個狀態設定給全部對應的checkbox。

    當所有對應checkbox有別勾選的時候, 全部勾選checkbox 也要被勾選

    另外一個常常遇到的情況是,當對應的所有checkbox被勾選了,checkAll應該也要被勾選:

    function checkOrRemoveCheckAll()
    {
    	if($('input[name="chkPerson"]:checked').length == $('input[name="chkPerson"]').length)
    	{
    		$('#checkAll').prop("checked", "checked");
    	}
    	else
    	{
    		$('#checkAll').removeAttr("checked");
    	}
    }
    

      

    這個其實也滿好理解,我們先取得所有有勾選的checkbox數字,對比所有checkbox的總數字。

    如果一致,表示所有被勾選了,因此checkAll也要勾選,如果不一致,表示checkAll不需要被勾選。

    完整程式碼範例

    JS Bin

    點部落 的標籤: jquery ,snippet

  • 相关阅读:
    IaaS、PaaS、SaaS
    hyper-V 配置
    解决linux下创建用户时出现Creating mailbox file: File exists
    iframe层级关系调用
    js,jq新增元素 ,on绑定事件无效
    js中!和!!的区别与用法
    form表单禁止button 提交
    Thinkphp5终端创建控制器和模型
    TP5的目录常量和路径
    sublime安装package controlller
  • 原文地址:https://www.cnblogs.com/jthb/p/3525018.html
Copyright © 2011-2022 走看看