jQuery datepicker更改为maxDate范围

时间:2014-08-22 12:01:19

标签: javascript jquery jquery-ui date datepicker

我正在为日期范围创建一个控件。有以下要求。

  • 表单应该是到昨天没有未来的日期[能够实现]
  • 限制最多3个月的不同。

    $("#from-datepicker").datepicker({
        dateFormat: "dd-M-yy",
        maxDate: "-1d",
        onClose: function (selectedDate) {
          console.log(selectedDate);
            $("#to-datepicker").datepicker("option", "minDate", selectedDate);
          //$("#to-datepicker").datepicker("option", "maxDate", selectedDate);
        }
    });
    $("#to-datepicker").datepicker({
        dateFormat: "dd-M-yy",
        maxDate: "-1d",
        onClose: function (selectedDate) {
            $("#from-datepicker").datepicker("option", "maxDate", selectedDate);
        }
    });
    

这是JSfiddle

1 个答案:

答案 0 :(得分:1)

结果如下:

$(function() {
    $("#from-datepicker").datepicker({
        dateFormat: "dd-M-yy",
        maxDate: "-1d",
        onClose: function (selectedDate) {             
            // Set 'TO' minDate
            $("#to-datepicker").datepicker("option", "minDate", selectedDate);             

            // Set 'TO' maxDate at 3 months if before yesterday
            var dt = new Date($(this).datepicker("getDate"));
            dt.setMonth(dt.getMonth() + 3);
            if(dt < Date.now()) {
                $("#to-datepicker").datepicker("option", "maxDate", dt);
            }
        }
    });
    $("#to-datepicker").datepicker({
        dateFormat: "dd-M-yy",
        maxDate: "-1d",
        onClose: function (selectedDate) {
            // Set 'FROM' maxDate
            $("#from-datepicker").datepicker("option", "maxDate", selectedDate);

            // Set 'FROM' minDate at 3 months if before yesterday
            var dt = new Date($(this).datepicker("getDate"));
            dt.setMonth(dt.getMonth() - 3);
            if(dt < Date.now()) {
                $("#from-datepicker").datepicker("option", "minDate", dt);
            }
        }
    });
});

工作jsfiddle:http://jsfiddle.net/382z6ev5/ (抱歉,我的jsbin出了问题)