layui table使用laydate遇到的问题

使用layui table过程中需要组合用到laydate日期控件实现日期搜索的功能,但使用过程中会发现laydate点击第一次触发弹出控件后,点击第二次就不弹出控件了。

情况1:

table使用toolbar: '#toolbarDemo' 

toolbarDemo对应的js代码:

        <script type="text/html" id="toolbarDemo">
<div class="demoTable">
 <span class="layui-inline">
 <input type="text" class="layui-input" id="tiwendakamain_dkdate" placeholder="请选择日期" readonly=""/>
  </span>
<span class="layui-inline">
<div class="layui-btn-group">
  <button class="layui-btn" data-type="reload">搜索</button>
  </div>
</span>

</div>
</script>

html页面代码:

<div class="layui-fluid">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-md12">
                    <div class="layui-card">
                        <div class="layui-card-body">
                            <table id="table" lay-filter="table"></table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

只需要laydate渲染的对象在table渲染的对象之后就行了,先渲染table再渲染laydate,如下:

table.render({
    elem: '#table'
    ,toolbar: '#toolbarDemo' 
  });

laydate.render({
    elem: '#tiwendakamain_dkdate' //指定元素
  });

如果顺序错了就导致第二次点击日期控件弹不出的问题。

情况2:

table不使用toolbar: '#toolbarDemo' ,日期控件直接写入html页面

html页面代码:

<div class="layui-fluid">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-md12">
                    <div class="layui-card">
                        <div class="layui-card-body">                            

                        <div class="demoTable">
                                <span class="layui-inline"> <input type="text"
                                        class="layui-input" id="tiwendakaReportBydkstate_dkdate" placeholder="请选择打卡日期" readonly=""
                                         /> </span>
                                <span class="layui-inline">
                                    <div class="layui-btn-group">
                                        <button class="layui-btn" data-type="reload" id="btnSelect">
                                            搜索
                                        </button>
                                    </div> </span>

                            </div>

                            <table id="table" lay-filter="table"></table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

这种情况,laydate渲染的对象和table渲染的对象是不区分先后的,无论哪个先渲染都可以。如下:

laydate.render({
    elem: '#tiwendakamain_dkdate' //指定元素
  });

table.render({
    elem: '#table'
    ,toolbar: '#toolbarDemo' 
  });

总结:laydate日期控件只弹出一次,问题其实是出在table的toolbar,应该是toolbar封装后缓存的问题。由于缓存存在导致laydate渲染对象的elem属性没有发生变化,elem属性不变laydate也就不会再弹出了。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值