首页 > 其他分享 >layui时间控件 laydate 重置失效

layui时间控件 laydate 重置失效

时间:2022-12-09 14:01:03浏览次数:48  
标签:控件 endDate laydate startDate layui min max date config


layui时间控件 laydate 重置失效

  • ​​问题描述​​
  • ​​页面代码​​
  • ​​问题处理​​

问题描述

layui日期控件laydate引入页面后,页面开始时间小于结束时间,结束时间最大为当前时间,展示效果如图,第一次选择开始时间和结束时间

layui时间控件 laydate 重置失效_javascript


layui时间控件 laydate 重置失效_前端_02


layui时间控件 laydate 重置失效_日期控件_03


重置之后第二次选择开始时间和结束时间,效果如图

layui时间控件 laydate 重置失效_javascript_04


开始时间的最大日期不在是4.15号,而是上次选择的4.13号,我们再看结束时间

layui时间控件 laydate 重置失效_前端_05


结束时间的最小日期不再是默认的 1900-01-01,而是第一次选择的开始时间4.5号,这样是不是很奇怪呢?

页面代码

<li class="input-daterange input-group">
操作时间:
<input type="text" name="createStartDate" readonly id="createStartDate"/>

<input type="text" name="createEndDate" readonly id="createEndDate"/>
</li>

js代码

var startDate;
var endDate;
function initLaydate() {
layui.use('laydate', function() {
var laydate = layui.laydate;
startDate = laydate.render({
elem: '#createStartDate',
max: $('#createEndDate').val(),
type: 'datetime',
theme: 'molv',
trigger: 'click',
done: function (value, date) {
// 结束时间大于开始时间
if (value !== '') {
endDate.config.min.year = date.year;
endDate.config.min.month = date.month - 1;
endDate.config.min.date = date.date;
} else {
endDate.config.min.year = '';
endDate.config.min.month = '';
endDate.config.min.date = '';
}
}
});
endDate = laydate.render({
elem: '#createEndDate',
//min: $('#createEndDate').val(),
max:$.common.getNowFormatDate(),
type: 'datetime',
theme: 'molv',
trigger: 'click',
done: function (value, date) {
// 开始时间小于结束时间
if (value !== '') {
startDate.config.max.year = date.year;
startDate.config.max.month = date.month - 1;
startDate.config.max.date = date.date;
} else {
startDate.config.max.year = '';
startDate.config.max.month = '';
startDate.config.max.date = '';
}
}
});
})
}
getNowFormatDate: function() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();
return currentdate;
}

通过看代码整体上感觉没有问题,那么问题在哪儿呢?

问题处理

通过参照layui官网文档 日期控件,也没能找到原因,于是去百度搜索,看到有人说是重置只能清除input框的内容,但是不能清除日期控件的动态时间限制,那么怎么处理呢?网上的方案是重写重置函数,增加 endDate.config.min=startDate.config.min;
startDate.config.max=endDate.config.max;代码

function reset() {
$.form.reset();
endDate.config.min=startDate.config.min;
startDate.config.max=endDate.config.max;
}

采用之后却发现第二次问题是解决了但是第三次、第四次重置之后问题仍然存在,最后多方查找没有方案,后来自己探索发现再次初始化一下时间插件,代码如下

function reset() {
$.form.reset();
endDate.config.min=startDate.config.min;
startDate.config.max=endDate.config.max;
initLaydate();
}

问题解决,圆满。
参考文章:https://developer.aliyun.com/article/887646


标签:控件,endDate,laydate,startDate,layui,min,max,date,config
From: https://blog.51cto.com/u_10917175/5925155

相关文章

  • 界面控件DevExtreme DataGrid——一个多用途的UI组件
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • ASP.NET2.0的multiview和wizard控件
    最近学习asp.net2.0中,偶遇这两个新控件,故翻译老在asp.net1.1中,如果要做一个具有向导式的应用程序,是比较麻烦的。所谓向导式应用,就是说比如一个注册用......
  • ASP.NET2.0中用Gridview控件操作数据
    在​​ASP.NET​​2.0中,加入了许多新的功能和控件,相比asp.net1.0/1.1,在各方面都有了很大的提高。其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大。在本......
  • VC++ ScrollBar控件的使用方法
    1、在对话框中拖入CScrollBar控件,并修改ID,2、示例一:voidCTestScrollBarDlg::OnHScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){ //TODO:在此添加消息处......
  • (16) WPF 导航控件
    一、 ​​Frame​​ 二、 ​​Hyperlink​​ 三、 ​​Page​​ 四、​​NavigationWindow​​ 五、​​TabControl​​......
  • (15) WPF 菜单控件
    一、 ​​ContextMenu​​ 二、 ​​Menu​​ 三、​​ToolBar​​......
  • 如何实现移除控件?
    通过使用触发器中触发行为移除控件实现一个点击按钮移除图片的功能。效果展示:  前置准备:需要移除的组件用于点击触发移除控件的组件(下文简称“触发组件”)......
  • 用pageOffice控件实现 office word文档在线另存为pdf的功能
    用pageOffice控件实现officeword文档在线另存为pdf的功能1应用场景OA办公中,经常要将word文档转存为pdf方法,方式文档的查看。怎么实现word文档的转存为pdf呢?2实现方......
  • Azure DevOps 中自定义控件的开发
    AzureDevOps插件:FieldUniqueControlhttps://github.com/smallidea/azure-devops-extension-custom-control-sample一.概述二.快速开始三.目录结构四.使用......
  • 一个模仿HTML5功能的jquery控件
    原文:http://www.matiasmancini.com.ar/html5form_en.php大致将要点翻译下:在HTML5中,验证输入框等都可以不用JAVASCRIPT就能实现了,现在只有少部分浏......