checkbox 全选问题!

未结贴
8 786
正常的使用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 回复
  • 小阿超 小阿超
    2017-05-13 16:39:36
    后台模板有分享地址吗?
    0 回复
  • xuffy xuffy
    2017-05-15 11:10:26
    @小阿超 https://github.com/Xuffy/layui-WMS
    还在更新...
    0 回复
近期热议
layer.open中content属性值应该怎么写??? 15
即日起,【案例】必须符合以下要求 14
表情问题。。。 12
《悬赏飞吻:20》!请教各位,我想给我自定义的按钮添加同样的效果,怎么弄呢? 11
请勿将 layui 2.0 的新增组件提前挖出来公开分享 9
LayUI的下拉列表显示 8
layui之select赋值,渲染问题。求高手指点,帮忙看看! 7
求layer.js未加密版 7
这个jeui是什么鬼 6
layim聊天记录调取不出来 6