zoukankan      html  css  js  c++  java
  • 一个简单的全选Jquery插件

    在实际开发中全选操作会经常用到,这里简单的写了个Jquery的全选插件,方便以后直接调用

    /*
    * jQuery lightweight plugin CheckAll
    * Original author: Suifengshiqu
    * Further changes, comments: lvbo1988@gmail.com
    */
    
    /* 表格全选插件 */
    
    /* 使用方法 */
    /*
        $("#tab").CheckAll({ valueField: "txtTest",attrName: "Id", chkId: "chkall", splitExp: "|", valueIndex: 0 });
    */
     
    (function ($) {
        $.fn.extend({
            CheckAll: function (options) {
                var defaults = {
                    valueField: null,   //默认选中后的赋值字段
                    chkId: "c_all",     //全选框的Id
                    attrName: "id",     //取值属性
                    splitExp: "_",      //字段分隔符号
                    valueIndex: 1       //分割后取值的索引下标
                };
                var options = $.extend(defaults, options);
                var obj = $(this); //默认为table
                function _getSelectedValue() {
                    var values = "";
                    obj.find(":checked").each(function () {
                        //排除下拉菜单中的选中项和全选框
                        if (!$(this).is("option") && $(this).attr("id") != options.chkId) {
                            values += $(this).attr(options.attrName).split(options.splitExp)[options.valueIndex] + ",";
                        }
                    });
                    if (values.length > 0)
                        return values.substring(0, values.length - 1);
                    return values;
                }
                return this.each(function () {
                    if (obj.is("table")) {
                        var subExp = "#" + obj.attr("Id") + " :checkbox";
                        var chks = $(subExp + ":gt(0)");
                        var checkedCount = 0;
                        chks.each(function () {
                            $(this).click(function () {
                                if ($(this).attr("checked")) {
                                    checkedCount += 1;
                                } else {
                                    checkedCount -= 1;
                                }
                                if (checkedCount < chks.length) {
                                    $("#" + options.chkId).attr("checked", false);
                                } else {
                                    $("#" + options.chkId).attr("checked", true);
                                }
                                $("#" + options.valueField).val(_getSelectedValue());
                            });
                        });
                        $("#" + options.chkId).click(function () {
                            if ($(this).attr("checked")) {
                                $(subExp).attr("checked", true);
                                checkedCount = chks.length;
                            } else {
                                $(subExp).attr("checked", false);
                                checkedCount = 0;
                            }
                            $("#" + options.valueField).val(_getSelectedValue());
                        });
                    }
                });
            }
        });
    })(jQuery);
    

      

      

    页面调用如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="Scripts/jquery.CheckAll.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#tab").CheckAll({ valueField: "txtTest" });
            });
        </script>
    </head>
    <body>
        <table id="tab">
            <tr>
                <td><input type="checkbox" id="c_all" /></td>
            </tr>
            <tr>
                <td><input type="checkbox" id="c_1" /></td>
            </tr>
            <tr>
                <td><input type="checkbox" id="c_2" /></td>
            </tr>
            <tr>
                <td><input type="checkbox" id="c_3" /></td>
            </tr>
            <tr>
                <td><input type="checkbox" id="c_4" /></td>
            </tr>
        </table>
        <input type="text" id="txtTest" />
        <span onclick="alert(txtTest.value);">查看选中项</span>
    </body>
    </html>
    

      

  • 相关阅读:
    MYSQL常用命令集合(转载)
    Spring(七)持久层
    Spring(六)AOP切入方式
    面试题目
    11 集合
    10 常用类
    9 异常机制
    8 面向对象之抽象类+接口+内部类
    7 面向对象的三大特征
    6 面向对象之类和对象
  • 原文地址:https://www.cnblogs.com/lvbo1988/p/2479448.html
Copyright © 2011-2022 走看看