checkbox 全选问题!

未结贴
6 238
正常的使用layui 写checkbox全选会遇到两个问题:
1.自己修改了checkbox的checked值,然后用form.render('checkbox')更新会出现点两次之后render渲染失败了!
2.不用render重新渲染checkbox,自己给checkbox样式加上 layui-form-checkbox ,全选是可以了,但是全选后的checkbox 需要点击两次才能取消!

  • 放逐之魚 放逐之魚
    2017-02-17 15:41:42
    贴代码看看
    0 回复
  • xuffy xuffy
    2017-02-17 15:50:21
    查看了layui源码 发现第一个问题render渲染失败可能是render最后的判断逻辑也许有问题。

    我又看了form复选框源码


    发现源码①的地方是在监听事件前获取了checkbox元素,这样就有可能出现,开发者去修改了checkbox的checked值,但是源码还是读取之前的checkbox元素。
    所以这里①的代码应该放在②的位置,每次都去重新获取checkbox元素。(建议)

    但是可以在保证不改源码也可以实现,你要去对全选的每个checkbox多加一句checked = true才行(需要循环添加)


    纠结了大半天的BUG解决了[困]
    0 回复
  • xuffy xuffy
    2017-02-17 15:51:40
    @放逐之魚 更新了
    0 回复
  • 放逐之魚 放逐之魚
    2017-02-17 16:03:40
    @xuffy 你是怎么修改checked值的,用attr么
    0 回复
  • xuffy xuffy
    2017-02-17 16:28:29
    @放逐之魚 其实你不需要去给checkbox添加checked值
    $('input[type="checkbox"]')[0].checked=true; //或者false 不用去加attr属性
    然后把他相邻的样式修改下
    $('input[type="checkbox"]').next('.layui-form-checkbox').removeClass('layui-form-checked')
    或者
    $('input[type="checkbox"]').next('.layui-form-checkbox').addClass('layui-form-checked')

    就可以了
    0 回复
  • Aries Aries
    2017-03-23 13:16:55
    @xuffy 有个问题,这边自己写双击事件,把checkbox打上勾后(通过加layui的类名layui-form-cheked使其打上勾),这个时候就有问题了,再次点击时打的勾不能取消,得等到第二次才能取消
    0 回复
最近热帖
layui省市区三级联动数据库版 715
vip-admin Html v1.6.0 更新了 - 基于layui的后台模板 459
html5+CSS3+layui开发的前台网站模板 407
请问下,layer我看完了文档,也不知道里面的内容怎么自定义编译呢??? 385
layer终极疑难杂症。。感觉这问题无解了。。 360
PHP版layim整合融云简单实现 323
模态窗口用ajax 获取分页面,一直报404 310
下拉选择框动态添加option显示不出来 227
layui.upload 上传 dataType:"json" 怎么设置? 204
为什么提交表单的时候总会以get方式提交 193
近期热议
请问下,layer我看完了文档,也不知道里面的内容怎么自定义编译呢??? 16
求助 table数据 每次都要手动刷新才会更新数据 15
layer终极疑难杂症。。感觉这问题无解了。。 13
模态窗口用ajax 获取分页面,一直报404 12
layui弹出层没反应 12
范围的日历,怎么让第一个日历选中时间后,第二个立刻自动弹出 10
请问为什么layer中弹出层内容点击事件不起作用?? 10
求助,为何checkbox的原始风格无法显示 9
下拉选择框动态添加option显示不出来 9
扩展模块依赖内置模块的时候只需要声明内置模块名,不用路径,是怎么关联起来的啊? 7