【问题标题】:Jquery calender 2 way block dateJquery 日历 2 方式阻止日期
【发布时间】:2011-09-25 22:05:13
【问题描述】:

我正在使用 jquery ui 日期选择器 我的查询与所有其他查询不同,因为我需要 2 个自定义方法来阻止日期

    <script>
        var unavailableDates = ["5-7-2011","6-7-2011","7-7-2011","15-7-2011","16-7-2011","17-7-2011" ];


function unavailable(date) {
  dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
  if ($.inArray(dmy, unavailableDates) == -1) {
    return [true, ""];
  } else {
    return [false,"","Unavailable"];
  }
}
$(function() {
    $( "#datepicker_1,#datepicker_2" ).datepicker({
        beforeShowDay: unavailable,
        changeMonth: true,
        changeYear: true
    });
});

我已经自定义了我的代码以禁用几个日期,我也参考了它,但我也希望其他日期选择器根据第一个设置日期 例如,对于选择器 2(这是最大日期),我选择 7 月 4 日,比选择器 1 的日期应该大于今天但小于 7 月 4 日...如果我从选择器 1(这是最小日期)选择 7 月 1 日,它应该禁用所有上一个日期...

我的问题与jQuery datepicker- 2 inputs/textboxes and restricting range 类似,但我需要像上面那样禁用某些日期

任何帮助将不胜感激,因为我是 jquery 中的新蜜蜂

here is jsfiddle

【问题讨论】:

    标签: javascript jquery jquery-ui calendar


    【解决方案1】:
    $(function() {      $( "#datepicker_1,#datepicker_2" ).datepicker({
                 beforeShow: customRange,           beforeShowDay: unavailable,             changeMonth: true,          changeYear: true        });     });         function customRange(input) {   if (input.id == 'datepicker_2') {
        return {
          minDate: jQuery('#datepicker_1').datepicker("getDate")
        };   } else if (input.id == 'datepicker_1') {
        return {
          maxDate: jQuery('#datepicker_2').datepicker("getDate")
        };   } }
    

    如果对你有帮助,试试这个

    【讨论】:

    • 这是否可以停止重叠阻止日期,例如 14 日被阻止,用户选择 12 日并尝试将 16 日设置为结束日期,看到它与 14 日已经被阻止的日期重叠.....
    • 我已经用你的代码更新了我的小提琴。谢谢你的帮助你能帮我更多吗?如果用户选择 14 作为开始日期并选择 18 作为结束日期,则 15、16、17 将被阻止,这与阻止日期重叠,您可以查看是否可以停止重叠阻止日期并显示警报
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2021-08-11
    • 2013-03-30
    相关资源
    最近更新 更多