使用jQuery 1.9.1 & jQuery-ui 1.10.3。我有一个页面上会有2个日期选择器。它们将用作从SQL表中进行选择的过滤器。我正在阅读表格中的min
和max
日期。jquery UI - datepicker - 根据第一个选择设置第二个
datepicker1
是开始日期,datepicker2
是结束日期。使用上面的min
和max
,日历应该以datepicker1
开始,该日期作为默认日期,并且datepicker2
应该具有max
作为最近的可选日期。这两个日期作为一个艰难的开始&结束于我的日历上的可选日期。没有日期,但在任何日期的输入框中都已设置。
我需要做的是,一旦用户做出选择(在datepicker
控件中的任何一个中),基于该选择对其他datepicker
执行规则,但是只有在尚未选择其他datepicker
。
一旦日期已经从一个选择,则其它(未选)datepicker
将具有从所选择的一个14天的预先确定的窗口(> =如果datepicker1
被首先选择,< =如果datepicker2
选择第一)作为其max
(或min
)的日期。例如:
页的负荷,以及2012年12月10日&的2013年10月22日的maxDate的的minDate从查询返回 。
datepicker1
有12/10日期,因为它是 “开始”(可以选择最远的一天)。datepicker2
有10/22/2013日期作为其“结束”(可以选择的最新日期)。用户点击日历控件
datepicker1
并选择 2013-02-14。现在,
datepicker2
将在2013-02-14之后14天重新计算其新的maxDate,至 。然后用户可以选择任何日期> = 2013-02-14至2013-02-28作为 结束日期。
如果首先选择
datepicker2
,则过程将被逆转。
每个日期选择器的选项几乎相同的两个:
$(function(){
$("#datepicker1").datepicker({
dateFormat: "yy-mm-dd",
dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
changeMonth: true,
changeYear: true,
buttonImage: "calendar-blue.png",
buttonImageOnly: true,
buttonText: "Choose Start Date",
showOn: "both",
numberOfMonths: 1,
beforeShow: function(input, inst) {
$(".ui-datepicker").addClass("resizeDP");
},
onClose: function(selectedDate) {
$(".ui-datepicker").removeClass("resizeDP");
}
});
});
我可以强制执行时加载页面的日历max
和min
日期,但不能使“新的“14天之一在选择时适用。我尝试了几种不同的方法(主要在onClose
),但不能让它们中的任何一个起作用。
@steve_o请标记此答案为接受,如果它回答你的问题,否则就什么是不解决问题提供反馈。谢谢 – Trevor