javascript - jQuery datepicker - 如何覆盖初始化?

标签 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 个输入类。

有没有更好的解决方案?

最佳答案

您必须先销毁它,然后才能重新初始化它。

$( ".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/

相关文章:

javascript - JQuery 自动完成返回空白结果

jquery - 将信息添加到 jquery datepicker 日历中的日期数字

javascript - 来自另一个模块的 Angular JS 服务 DI

javascript - 输入栏只允许输入整数

javascript - 如何禁用某些控件直到更新成功?

javascript - jquery DatePicker - 数字月份下拉列表

javascript - 文本字段中预先填充的日期

javascript - AngularJS - 将字节数组内容显示为图像

javascript - 使用 UglifyJS 插件优化 Webpack 导致运行时错误

php - AJAX jQuery PHP 返回值