我在我的项目中使用 jQuery datepicker 的全局初始化- 几乎就是这段代码:
$('body').find(".datepicker").datepicker({dateFormat: 'yy-mm-dd'});
不过,对于某些页面,我需要重写这个全局定义并需要使用此设置(重新)初始化 datepicker
:
jQuery(function() {
var date = new Date();
var currentMonth = date.getMonth();
var currentDate = date.getDate();
var currentYear = date.getFullYear();
$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd',
minDate: new Date(currentYear, currentMonth-3, currentDate),
maxDate: new Date(currentYear, currentMonth+3, currentDate)
});
});
问题是第二个代码块(minDate
和 maxDate
)永远不会“执行”——datepicker
的原始初始化没有被覆盖。
此问题的一个解决方案是将所有 .datepicker
类重命名为 datepicker2
。但是,页面上有 12 个输入类,我需要在 3 个页面上进行此页面更改,因此它正在更改为 40 个输入类。
有没有更好的解决方案?
最佳答案
您必须先销毁它,然后才能重新初始化
它。
$( ".selector" ).datepicker( "destroy" );
例子
jQuery(function() {
var date = new Date();
var currentMonth = date.getMonth();
var currentDate = date.getDate();
var currentYear = date.getFullYear();
$('.datepicker').datpicker('destroy'); // Destroy it before re-initing
$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd',
minDate: new Date(currentYear, currentMonth-3, currentDate),
maxDate: new Date(currentYear, currentMonth+3, currentDate)
});
});
另一种选择(如您所述)是挑选那些需要一次性配置的日期选择器。
关于javascript - jQuery datepicker - 如何覆盖初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336767/