Layui的 checkbox 全选/单选 示例

  • Post author:
  • Post category:其他




layui 的checkbox 居然不能用jq上常用的方法控制全选,如下代码不适用

$('#allChecked').change(function(){
   $('#box').children(':checkbox').prop('checked',$(this).is(':checked')?true:false);
});



layui本身有自己的方法控制 lay-filter,代码如下:

layui.use(['form'], function(){
    var form = layui.form();
    //全选
    form.on('checkbox(allChoose)', function (data) {
        $("input[name='check[]']").each(function () {
            this.checked = data.elem.checked;
        });
        form.render('checkbox');
    });
    //单选
    form.on('checkbox(oneChoose)', function (data) {
        var i = 0;
        var j = 0;
        $("input[name='check[]']").each(function () {
            if( this.checked === true )
            {
                i++;
            }
            j++;
        });
        if( i == j )
        {
            $(".checkboxAll").prop("checked",true);
            form.render('checkbox');
        }else
        {
            $(".checkboxAll").removeAttr("checked");
            form.render('checkbox');
        }

    });
});



看到这基本上可以知道,为什么没反应了吧? 是,少

form.render(‘checkbox’);



Html

<tr>
 <th width="40" ><input type="checkbox" class="checkboxAll" lay-skin="primary"  lay-filter="allChoose" ></th>
 <th width="210">商品名称</th>
 <th width="160">SKU</th>
 <th width="70">产品类型</th>
 <th width="140">价格(元)</th>
 <th width="140">发布时间</th>
 <th>操作</th>
</tr>
<tr>
   <td><input type="checkbox" name="check[]" value="2" lay-skin="primary" lay-filter="oneChoose"></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
</tr>