laydate日期控件多个实例问题

发布于 2022-09-12 13:25:28 字数 1220 浏览 16 评论 0

代码如下:

`//遍历循环创建实例

    $('.layui-input').each(function (index) {
        var _this = this;
        laydate.render({
            elem: _this,
            trigger: 'click',//可以解决多个实例闪退问题
            isInitValue: false,//初始值填充
            // value:$('#TimeVal'+index).text(),
            range: index < 3 ? '~' : false, //或 range: '~' 来自定义分割字符
            ready: function (date) {//初始回调
                console.log('初始:', date); //得到初始的日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
            },
            change: function (value, date, endDate) {//选择切换回调
                console.log('选择切换回调:',value,date,endDate); //得到日期生成的值,如:2017-08-18
            },
            done: function (value, date) {
                console.log(value, date)
                $('#TimeVal' + index).text(value)
            }
        });
    });`
    

结果是当我选择了一个时间,后面的实例跟着回显了当前时间,我想要的是后面要选择才回显时间并不是选择了一个时间,后面的框也跟着回显了当前的时间,如下:
image.png

试了下因为我的dom结构是非input元素绑定laydate的,
image.png
这样div里面有文字就是有那样的问题,没有文字就是正常的,用input绑定也是正常的,但是我需要宽度自适应所以就不想要input元素绑定。有没有大佬有好的想法呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

各自安好 2022-09-19 13:25:28

用input元素宽度比较难做到自适应,所以想办法给非input元素加上placeholder,
解决办法如下:
dom结构:

<div class="layui-inline flex_align">
                            <i>统计时间:</i>
                            <!-- <input type="text" class="layui-input" placeholder="请选择统计时间" readonly="readonly"
                                id="waresTime"> -->
                            <div class="layui-input" id="waresTime" placeholder="请选择统计时间"></div>
                            <em class="x_date flex_center"></em>
                        </div>

css(关键):

.layui-input:empty::before{
    content:attr(placeholder);
}

js:

//同时绑定多个
        lay('.layui-input').each(function (index) {
            laydate.render({
                elem: this,
                trigger: 'click',//可以解决多个实例闪退问题
                // isInitValue: false,//初始值填充(需配合value使用)
                // value:$('#TimeVal'+index).text(),
                range: index < 3 ? '~' : false, //或 range: '~' 来自定义分割字符
                theme: '#0069E0',//主题
                done: function (value, date) {
                    $('#TimeVal' + index).text(value)
                }
            });
        }); 

可参考:
https://www.mybj123.com/4882....

稚然 2022-09-19 13:25:28

我奇怪的是为什么需要在一个界面中有那么多时间选择交互位置?按理只有一个即可?!
这样就不会有你这样的问题啦。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文