2010-11-22 204 views
1

我正在使用onSelect事件來設置EndDate的最小值等於設置爲StartDate的值。我在幾頁中有相同的代碼,但其中一個不起作用。如果我在StartDate中選擇了一個值,那麼當我進入EndDate字段時,datepicker不會顯示。頁面被加載並用ajax處理。jQuery Datepicker onSelect不起作用

我的代碼如下:

$(document).ready(function() { 

$("#strStartDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true, 
      onSelect: function(){ 
       $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
      } 
    }); 

    $("#strEndDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true 
    }); 
}); 

任何幫助深表感謝。先謝謝你。

使用您的評論背後的想法,我能做到差不多的東西我想

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

上面的代碼把一個結束日期比開始日期小。但是,如果有在年底已經值限制用戶日期,並且將開始日期更改爲大於結束日期的值,應將結束日期設置爲等於開始日期。這就是我試圖用代碼來執行下面在我早期的代碼

onSelect: function(){ 
     $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
    } 

任何想法如何做到這一點使用的實例,而不是重新初始化?

回答

0

我不知道這將解決你的問題,但試試這個:

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(selectedDate){ 
      $("#strEndDate").datepicker("option", "minDate",selectedDate); 
     } 
}); 
+0

不幸的是這沒有工作 – user516514 2010-11-24 15:40:52

0

這應該做你需要的東西:

function fromTo(startDate, endDate) { 
    $(startDate + ", " + endDate).datepicker({ 
    onClose: function (dateText, inst) { 
     if ("#" + inst.id === startDate) { 
     $(endDate).datepicker("option", "minDate", $(startDate).val()); 
     } 
    }, 
    beforeShow: function (input, inst) { 
     if (inst.id == $(endDate).get(0).id) { 
     inst.settings.minDate = $(startDate).val(); 
     } 
    }, 
    dateFormat: 'mm/dd/yy', 
    constrainInput: true, 
    firstDay: 1, 
    hideIfNoPrevNext: true 
    }); 
} 

使用fromTo("#startdate", "#enddate");

+0

我真的不明白如何使用此功能。何時會調用這個函數? – user516514 2010-11-24 15:41:18

1

玉傢伙...好消息...至少對我來說:)

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(){ 
      if ($("#strStartDate").val() > $("#strEndDate").val()){ 
       $("#strEndDate").val($("#strStartDate").val()); 
      } 
     } 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

這是最終的代碼。它只創建每個日期選擇器的一個實例,並在您想將其用作日期範圍選擇器時執行必要的驗證。再次

感謝您的指導