<input type="text" class="layui-input" id="date" placeholder="请选择日期">
/**
* 日期控件:数据概况
*/
laydate.render({
elem: '#date',
type: 'date',
range: true,
done: function (val) {
refreshData();
}
});
如上面代码块所示,切换日期refreshData()中,无法通过$(’#date’).val()获取修改后的日期。这边在网上看到了一篇类似的文章,是关于input产生这种现象。
原理和咱们这个应该一样,无法获取最新值原因有可能是LayDate控件给value赋值,只是改变了内存的值,没有自动触发oninput和onchange事件,所以无法获取最新的值。
要触发上述事件,则需手动触发一下,如下所示:
/**
* 日期控件:数据概况
*/
laydate.render({
elem: '#date',
type: 'date',
range: true,
done: function (val) {
$('#date').val(val);
refreshData();
}
});
除了上面重新赋值,还有两种方法:
- 直接把val当成参数传给refreshData();
- 设置一个定时器,时间可以设置10,这样也可以拿到日期
/**
* 日期控件:数据概况
*/
laydate.render({
elem: '#date',
type: 'date',
range: true,
done: function (val) {
refreshData(val);
}
});
/**
* 日期控件:数据概况
*/
laydate.render({
elem: '#date',
type: 'date',
range: true,
done: function (val) {
setTimeout(function () {
refreshData();
}, 10);
}
});