2010-09-27 53 views
1

我有一個使用jQuery的DatePicker插件的3個輸入字段的表單。這些字段是#startdate,#enddate和#raindate。我使用DatePicker的事件函數來使#startdate和#enddate一起工作,因此#enddate不能在#startdate之前。順便提一下,這兩個字段都是必需的。 #raindate字段不是必需的。但是,如果用戶想在這裏添加日期,我希望它在#enddate中選擇的日期之後。我該怎麼做呢?下面是我對獲得STARTDATE日期和結束日期共同努力代碼:如何獲得一個jquery datepicker輸入與另一個值的集成?

function getDates() { 
    var dates = $("#startdate, #enddate").datepicker({ 
     defaultDate: "+1d", 
     changeMonth: true, 
     numberOfMonths: 1, 
     onSelect: function(selectedDate) { 
      var option = this.id == "startdate" ? "minDate" : "maxDate", 
      instance = $(this).data("datepicker"); 
      date = $.datepicker.parseDate(
        instance.settings.dateFormat || 
        $.datepicker._defaults.dateFormat, 
        selectedDate, instance.settings); 
      dates.not(this).datepicker("option", option, date); 
     } 
    }); 
} 

有沒有指定這樣的事情?:

minDate: $(#enddate).val() + 1d 
+0

你可能想看看長絲組的[日期範圍選擇器(http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/) – Pointy 2010-09-27 13:58:21

回答

1

是的,有叫的minDate和它的選項的方式也支持更多選擇。

要獲得所有可用的選項進入 -

http://jqueryui.com/demos/datepicker/

那邊去選擇標籤。

以上可以通過下面的代碼來實現 -

$('#raindate').datepicker({ 
    dateFormat: "dd M yy", 
    beforeShow: customRange, 
    //Your other configurations. 
    }); 

    function customRange(input) { 
    if (input.id == "raindate") 
    { 
    dateMin = new Date(); 
    if ($("#enddate").datepicker("getDate") != null) 
    { 
    dateMin = $("#enddate").datepicker("getDate"); 
    dateMin.setDate(dateMin.getDate() + 1); 
    } 
    } 
    return { 
    minDate: dateMin 
    }; 
}​ 
+0

我的問題可能不太清楚。我有我的#startdate和#enddate使用上面的示例正常工作。但是,我希望#raindate的minDate超出所選#enddate的1天。 – user338413 2010-09-27 15:26:32

+0

我已根據您的要求修改了我的代碼。希望它可以幫助你:) – Alpesh 2010-09-27 17:31:38

+0

剛剛嘗試過。 #raindate的日曆不會隱藏#enddate之前的任何日期。 – user338413 2010-09-27 19:59:48

相關問題