码迷,mamicode.com
首页 > 其他好文 > 详细

checkbox管理

时间:2017-06-06 23:41:42      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:set   选中   check   eal   批量修改   index   color   turn   leo   

这是我写的关于checkbox的管理的方法;

主要目的是1.管理checkbox全选,单个选的状态;(例如当所有的单个选框都选中时,全选框的状态应该是选中,)

2.选中,取消选中时更新数据;

目的:

实现批量操作(批量删除,批量修改)时的状态管理;

并不完善;而且感觉这样做不好;但是技术有限,想不出其他方法了;

如果哪位大神路过,还望指导一下。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>
<body>
    全选<input type="checkbox" id="checkAll" />
    <br />
    选项一<input type="checkbox" id="1" class="checkList" /><br>
    选项二<input type="checkbox" id="2" class="checkList" /><br>
    选项三<input type="checkbox" id="3" class="checkList" /><br>
    选项四<input type="checkbox" id="4" class="checkList" /><br>
    选项五<input type="checkbox" id="5" class="checkList" /><br>
    选项六<input type="checkbox" id="6" class="checkList" />
</body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
    Array.prototype.indexOf = function(val) {
        for (var i = 0; i < this.length; i++) {
            if (this[i] == val) return i;
        }
        return -1;
    };
    Array.prototype.remove = function(val) {
        var index = this.indexOf(val);
        if (index > -1) {
            this.splice(index, 1);
        }
    };
    var checkBox = {
        cache: [],
        addOrDeteleOne: function ($targetAll, $targetList) {
                var _self = this; 
            $targetList.on(‘click‘, function (event) {
                var $tr_id = $(this).attr(‘id‘);
                console.log($(this).is(‘:checked‘));
                if ($(this).is(‘:checked‘)) {
                   _self.cache.push($tr_id);
                } else {
                        _self.cache.remove($tr_id);              
                }
                _self.checkAllState($targetAll, $targetList);
                console.log(_self.cache);
            });
        },
        addOrDeleteAll: function ($targetAll, $targetList) {
                var _self = this;
            $targetAll.on(‘click‘, function (event) {
                if (!$(this).is(‘:checked‘)) {
                   
                    $targetList.prop(‘checked‘, false);
                    _self.cache.splice(0, _self.cache.length);
                } else {
                        $targetList.prop(‘checked‘, true);
                        $targetList.each(function (i, ele) {
                            if (_self.cache.indexOf($(ele).attr(‘id‘)) === -1) {
                                _self.cache.push($(ele).attr(‘id‘));    
                            }
                        });
                
                }
                console.log(_self.cache);
            })
        },
        checkAllState: function ($targetAll, $targetList) {
            $targetList.each(function (j, elem) {
                if (!$(elem).is(‘:checked‘)) {
                    $targetAll.prop(‘checked‘, false);
                    return false;
                } else {
                    $targetAll.prop(‘checked‘, true);
                }
            })
        },
        empty: function () {
            
        }
    };
  //方法调用 checkBox.addOrDeteleOne($(
‘#checkAll‘), $(‘.checkList‘)); checkBox.addOrDeleteAll($(‘#checkAll‘), $(‘.checkList‘)); </script> </html>

 

checkbox管理

标签:set   选中   check   eal   批量修改   index   color   turn   leo   

原文地址:http://www.cnblogs.com/hanhui66/p/6953940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!