javascript - 如何根据 jquery datepicker 中的某些 datepicker 值禁用 future 日期

标签 javascript jquery jquery-ui datepicker

我正在使用 jquery datepicker,我有 4 个日期:start_date、end_date、publishing_date 和 departure_date。这里基于 start_date 我想禁用 start_date 之前的 future 日期,同样基于 end_date 我想禁用结束日期的过去日期。我无法这样做,尝试了很多 onSelect 选项,但我无法获得所需的禁用。这是我的 jquery 代码。

var dateToday = new Date();
var dates = $("#start_date, #end_date").datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: dateToday,
    onSelect: function(selectedDate) {
        var option = this.id == "start_date" ? "minDate" : "maxDate",
        instance = $(this).data("datepicker"),
        date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);
    }
});

$('#departure_date').datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: $('#end_date').datepicker({
        dateFormat: 'dd-mm-yy'
    }).val()
});

$('#publishing_date').datepicker({
    dateFormat: 'yy-mm-dd',
    maxDate: $('#start_date').datepicker({
        dateFormat: 'dd-mm-yy'
    }).val()
});

欢迎提出任何建议/帮助。在此先致谢。

也尝试过如下使用,但无济于事。

$('#publishing_date').datepicker({
    dateFormat: 'yy-mm-dd',
    maxDate : ($.datepicker.formatDate('yy-mm-dd', $('#start_date').datepicker("getDate")))
});

最佳答案

根据@Mahesh Sapkal 的建议,我对代码进行了以下更改。

var dateToday = new Date();
var dates = $("#start_date, #end_date").datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: dateToday,
    onSelect: function(selectedDate) {
          var option = this.id == "start_date" ? "minDate" : "maxDate",
          instance = $(this).data("datepicker"),
          date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
          if(this.id == "start_date"){
                   $("#publishing_date").datepicker({
                         dateFormat: 'yy-mm-dd',
                         minDate: dateToday,
                         maxDate: date
                    });
          }
          if(this.id == 'end_date'){
                   $("#departure_date").datepicker({
                         dateFormat: 'yy-mm-dd',
                         minDate: date
                   })
          }
          dates.not(this).datepicker("option", option, date);
     }

}); 不知道为什么,但他的建议 $( "#departure_date").datepicker( "选项", "minDate",date ); 对我不起作用。

关于javascript - 如何根据 jquery datepicker 中的某些 datepicker 值禁用 future 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20782511/

相关文章:

java - 防止多次提交 Struts2 : Not Showing Success Message

jquery - 如何让我的元素更早地使用 jQuery 样式?

javascript - jQuery 将 UL 与 LI 附加到按钮单击时下拉列表中的值

jquery - jquery中的"this"问题

javascript - 仅当所有子对象均为 true 时才从对象返回 true

javascript - WordPress 中的 Ajax 调用不会转到 admin-ajax.php

javascript - jquery 使用 css 函数

jquery - 为什么 (jQuery) Waypoints "bottom-in-view"不适用于隐藏元素?

jquery-ui - requirejs + jqueryui = $.widget 未定义

javascript - “网络错误: 405 Method Not Allowed error in Ajax Call