zoukankan      html  css  js  c++  java
  • JS实现checkbox全选功能

      在后台系统开发中,往往需要涉及对信息的批量操作,例如全选的checkbox;如图:

      

      选中一级页面前面的checkbox就会全选,JS实现如下:

    html代码:

    <input id="ckAll" type="checkbox" name="chkA"/>一级页面 
    <input name="chkChild" type="checkbox" id="13"/>人物

    JS代码:

    $(function () {
        //全选
        $("input[name=chkA]").click(function () {
            $("input[name=chkChild]").attr("checked", $(this).attr("checked")); //选中全部信息
            var flag = $(this).attr("checked");
            $("input[name=chkA]").each(function () {//选择上下全选框
                $(this).attr("checked", flag);
            });
        });
    
        //选中信息
        $("input[name=chkChild]").click(function () {
            if (!$(this).attr("checked")) {//当前记录未选中,全选不选中
                $("input[name=chkA]").each(function () {
                    $(this).attr("checked", false);
                });
            }
            else//当前记录选中
            {
                var flag = true;
                var $inputs = $("input[name=chkChild]");
                for (var i = 0; i < $inputs.length; i++) {
                    if (!$($inputs[i]).attr("checked")) {
                        flag = false;
                        break;
                    }
                }
                $("input[name=chkA]").each(function () {
                    $(this).attr("checked", flag);
                });
            }
        });
    })

    然后通过ajax将选中的信息传递给一般处理程序,更改数据库;

    ////批量操作
    function changeChecked(strUser, fstCgID) {
        var times = $("#hdclicks").val();
        $("#hdclicks").val(times + 1);
        times = $("#hdclicks").val();
        if (times > 1)//解决操作过程中重复操作
        {
            alert("正在处理,请稍后操作");
            return false;
        }
        var msg = "确定要批量操作吗?";
        var alertmsg = "请选择要操作的信息!";
        var $inputs = $("input[name=chkChild]");
        var keyId = "";
        for (var i = 0; i < $inputs.length; i++) {
            if ($($inputs[i]).attr("checked")) {
                keyId = keyId + $($inputs[i]).attr("id") + ",";
            }
        }
        if (keyId.length > 0) {
            if (confirm(msg)) {
                keyId = keyId.substr(0, keyId.length - 1);
    
                $.ajax({
                    type: 'Post',
                    url: 'UserControl/CategoryOperate.ashx',
                    data: {
                        action: 'changeUpdTypeMult',
                        CgID: keyId,
                        User: strUser,
                        UpdType: $("#selectUpdType>option:selected").get(0).value
                    },
                    success: function (res) {
                        if (res != "1") {
                            alert("操作失败,请重试。");
                            window.location.href = "TasksTree.aspx?fstCGID=" + fstCgID;
                        }
                        else {
                            window.location.href = "TasksTree.aspx?fstCGID=" + fstCgID;
                        }
                    },
                    error: function () {
                        alert("操作请求发送失败,请重试!");
                    }
                });
            }
            else {
                $("#hdclicks").val(times - 1);
                return false;
            }
        }
        else {
            alert(alertmsg);
        }
    }

    注意在html页面中增加:

    <input type="hidden" id="hdclicks" value="0" />
  • 相关阅读:
    换博客啦
    how2heap学习(二)
    hitcontraining_uaf && hacknote
    WHUCTF PWN题目
    记一次AWD
    how2heap学习(一)
    pwnable_start & ciscn_2019_es_2 & ez_pz_hackover_2016 & pwn2_sctf_2016
    pwnable_start (内联汇编)
    2020年5月计划
    一道逆向出题笔记
  • 原文地址:https://www.cnblogs.com/wxh19860528/p/2957022.html
Copyright © 2011-2022 走看看