各位大佬,table加入日期组件,不能正常显示,却是为何?

提问 已结
43 4008
spsyche
spsyche 2018-7-30
悬赏:20飞吻
版本:layui 浏览器:

我比照radio和checkbox的写法,加入,然后use里加上 laydate, 用laydate.render({})渲染咋不行呢?不弹出日期框,没什么动静
回帖
  • 问题基本就确定了laydate.render()实际上不支持去一次性渲染一类elem的功能,尽管示例中给出了同时渲染多个节点的案例,但是这个是一个障眼法,看看实现的代码,所谓的同时渲染实际是自己遍历一个一个渲染,所以从根本上来说就不存在同时渲染一类节点的功能,这个你可以看看我以前写的一个帖子 http://fly.layui.com/jie/27108/
    实际上你这一块页面上出现很多id重复的节点本身就不合理,id应该是唯一的,建议你给需要设置成laydate的节点给添加一个class比如myDate
    然后在done回调里面遍历这些节点,然后给他们laydate.render注意,里面elem不是写'.myDate',这个elem不是只能设置#id或者.class的设置,还能设置dom,这个不要让某些人带偏了。
    1 回复
  • avenjan
    2018-7-30
    指定元素了么?
    laydate.render({
    elem: '#test1' //指定元素 日期选择input的class或者id
    });
    0 回复
  • spsyche
    2018-7-30
    @avenjan 必须指定了,就是感觉渲染不出来
    0 回复
  • sakuya88
    2018-7-30
    应该是被超出隐藏了。
    0 回复
  • 关键是你怎么渲染的laydate,代码在哪看看
    0 回复
  • spsyche
    2018-7-31
    @sakuya88 应该不是,我给了一个默认值也显示不出来
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 这是我的代码

    麻烦大佬帮忙看看
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 谢谢大佬,非常感谢
    0 回复
  • @spsyche 不客气[微笑] ,忘了发一下这个tableView变量是啥了这个是table组件给我们生成的我们看到的table的视图
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 大佬,你对select了解多吗,我在table列里加了一个select,但是不显示下拉框,我知道form.render(),但是我这个select在table里,不在form里,该怎么渲染呢?
    0 回复
  • @spsyche 这个是因为td中的div有一个设定,就是overflow:hide,需要给有select的td里面的div给改变一下样式,让overflow:auto,
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 大佬 厉害了啊
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 你好,现在可以显示出来了,但是这个弹出框不像日期框一样 浮在table上面,弹出框反而占用了table的高度。 这该如何解决,我像让下拉框像日期框一样浮在table上面
    0 回复
  • @spsyche 这个我目前也没有找到什么方法解决,主要自己项目中目前还没需要在table中显示select所以没去细看怎么处理,能否处理这个还不确定,今晚下了班有空了再试试看,可能可以看看这个帖子,看看是否可用 http://fly.layui.com/jie/31097/
    0 回复
  • spsyche
    2018-7-31
    @岁月小偷 好的 谢谢啦
    0 回复
  • @spsyche 不客气[微笑]
    0 回复
  • @spsyche 你好,我按照上面的方法改了,但是出现了跟你一样的问题,想问下,你现在解决了吗?
    0 回复
  • spsyche
    2018-8-1
    @最美的太阳 没有,我现在只能让我们的美工调样式了
    0 回复
  • spsyche
    2018-8-2
    @岁月小偷 还有个问题请教,这个select和laydate的值该怎么获取,我用form.on获取不到呢
    0 回复
  • spsyche
    2018-8-2
    @岁月小偷 我想在点击操作的时候能够获取这两个值,提交
    0 回复
  • @spsyche 你这个是?表格在一个form中要提交这个表单吗?还是什么,我觉得应该是监听form的select监听,然后更新到表格的cache中,laydate的也是done回调也要更新到table的cache,这样才能更新到表格的数据中,后面比如获得表格选中数据中获得的才是最新的数据,不知道适不适合你的场景。
    0 回复
  • spsyche
    2018-8-3
    @岁月小偷 表格不在form中,就是一个普通表格添加了form元素,select和日期下拉框,然后把选择的值,点击保存按钮 可以保存。如图
    不知道 通过 e.tr能不能获取
    0 回复
  • spsyche
    2018-8-3
    @岁月小偷 刚才我试了 可以监听到select,昨天不行呢,蛋疼了
    0 回复
  • @spsyche 嗯嗯,只要页面上有节点,自然能通过js去取值额
    0 回复
  • spsyche
    2018-8-3
    @岁月小偷 我现在select的值可以放到table cache里了,

    但是laydate的回调没想出怎么弄呢,利用this.elem,tableView想不到如何获取laydate所在表和所在行的index,麻烦大佬给点提示,layui也是刚用,挺多不懂得地方
    0 回复
  • 初始化laydate的时候可以定义done回调,回调中你debugger一下this看看,我记得this就是laydate的config,它里面也有elem的,所以思路跟下拉的差不多额,试试看。
    0 回复
  • spsyche
    2018-8-3
    @岁月小偷
    这个日期框也成功了,谢谢了
    0 回复
  • @spsyche 不客气[微笑]
    0 回复
  • IT_bai
    2018-8-25
    @spsyche 有表格这个加入select下拉框的这个么 ,我正好也又需要 能分享一下么[可怜]
    0 回复
  • 大佬能发下完整代码吗? done 回调时放在哪儿的,没看明白 @ 岁月小偷
    0 回复