在同一页面上设置两个日期选择器的限制

时间:2014-08-22 19:07:06

标签: jquery jquery-ui datepicker

我正在尝试安排在同一页面上的两个日期选择器的一些限制,但我根本没有任何线索我的选择。如果可能的话,任何暗示?

var datepickerFrom = $("#stats-datepicker-from");

datepickerFrom.datepicker({
  showOtherMonths: true,
  selectOtherMonths: true,
  dateFormat: "d MM, yy",
  yearRange: "-1:+1",
  maxDate: new Date()
}).parent().find(".btn").on("click", function (e) {
  e && e.preventDefault();
  datepickerFrom.focus();
});

datepickerFrom.datepicker("setDate", "-1");
datepickerFrom.datepicker("widget").css({ "margin-left": -datepickerFrom.parent().find(".btn").outerWidth() });


var datepickerTo = $("#stats-datepicker-to");

datepickerTo.datepicker({
  showOtherMonths: true,
  selectOtherMonths: true,
  dateFormat: "d MM, yy",
  yearRange: "-1:+1",
  maxDate: new Date()
}).parent().find(".btn").on("click", function (e) {
  e && e.preventDefault();
  datepickerTo.focus();
});

datepickerTo.datepicker("setDate", "0");
datepickerTo.datepicker("widget").css({ "margin-left": -datepickerTo.parent().find(".btn").outerWidth() });

到目前为止,唯一设置的限制是,如果在maxDate: new Date()之后的今天之后,则无法选择日期。

我需要什么限制?只有那些正在我心中的常见的东西。

示例:

1)如果datepickerFrom的日期为“2014年8月1日”,则datepickerTo的日期不能选为{{1}的相同日期或过去时间(例如,2014年7月8日)。

2)如果用户首先选择datepickerFrom,则选择 1)

这甚至可能吗?

1 个答案:

答案 0 :(得分:2)

当选择其中一个时,你可以更改datepicker的maxDate和minDate。

datepickerFrom.datepicker({
  showOtherMonths: true,
  selectOtherMonths: true,
  dateFormat: "d MM, yy",
  yearRange: "-1:+1",
  maxDate: new Date(),
  onSelect: function () {
      datepickerTo.datepicker('option', 'minDate', datepickerFrom.datepicker('getDate'));
  }
})

datepickerTo.datepicker({
  showOtherMonths: true,
  selectOtherMonths: true,
  dateFormat: "d MM, yy",
  yearRange: "-1:+1",
  maxDate: new Date(),
  onSelect: function () {
      datepickerFrom.datepicker('option', 'maxDate', datepickerTo.datepicker('getDate'));
  }
})