2009-10-06 54 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