2009-10-06 74 views

回答

0

看看我的答案在这里 - JQuery datepicker- 2 inputs/textboxes and restricting range

一种方式做到这一点是使用了beforeShow属性在第二日期选择器限制值。或者,定义一个onSelect处理程序,它在第一个日期被选中时更新第二个输入。

Working Demo注:这是基于jQuery DatePicker,而不是Keith Woods'

编辑:

由于在datepick plugin page说 -

这个插件形成了 jQuery UI的日期选择器的基础。由于 UI团队希望为其版本提供简化的 功能,因此可将 作为单独的插件提供。

因此基于jQuery UI Datepicker的代码将与Keith的datepicker一起使用。从演示

$(function() 
{ 

    $('#txtStartDate, #txtEndDate').datepicker(
    { 
     showOn: "both", 
     dateFormat: "dd M yy", 
     onSelect: insertOtherDate, 
     firstDay: 1, 
     changeFirstDay: false 
    }); 
}); 

function insertOtherDate(value, date, inst) { 

    var firstDate = new Date(value); 
    var datepickerInput = (date.id === 'txtStartDate') ? 'txtEndDate' : 'txtStartDate'; 
    var dateAdjust = (date.id === 'txtStartDate') ? 1 : -1; 
    var secondDate = new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + dateAdjust); 

    $('#' + datepickerInput).datepicker('setDate', secondDate); 
} 
+0

startDate和endDate之间的范围不能始终为1.导致startDate和endDate具有minDate和maxDate。选择endDate时,startDate不能更改为“endDate - 1”,并且startDate可以保持与以前相同。当startDate选中时,endDate应该改为“startDate + 1”,那么该怎么做 非常感谢 – Jason 2009-10-07 09:47:23

+0

如果我正确地理解了你,endDate应该比startDate多1天,但不应该超过定义的maxDate为endDate。同样,startDate应该比endDate少1天,但不能早于为startDate定义的minDate。那是对的吗?如果没有,你需要澄清startDate和endDate之间的范围。 – 2009-10-07 09:57:21

+0

在startDate之前选择endDate时会发生什么? – 2009-10-07 09:58:09

1

代码中定义的处理程序ONSELECT与比所述一个选择用于第一字段中的一个以后的日期更新第二字段。

0

从datepicker创建一个onSelect事件。在回调中读取值,将日期转换为UNIX TIMESTAMP(可以使用$ .datepick.TIMESTAMP),添加24 * 60 * 60000并相应地配置第二个输入。

+0

这会输入与第一个datepicker中使用的自定义格式相同的日期吗? – 2009-10-06 12:30:41