jQuery datepicker-如何覆盖初始化?

时间:2019-01-23 22:37:22

标签: javascript jquery datepicker

我在我的项目中使用了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)
        });
    });

问题在于,第二个代码块(带有minDatemaxDate)永远不会“执行”-datepicker的原始初始化不会被覆盖。

解决此问题的一种方法是将所有.datepicker类重命名为datepicker2。但是,在该类的页面上有12个输入,我需要在3个页面上进行此页面更改,因此它的变化就像40个输入类。

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您必须先销毁它,然后re-init

$( ".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)
        });
    });

另一个选择(如您所述)是选择那些需要一次性配置的日期选择器。