2010-12-22 113 views
9

我有一個應用程序窗體上的日期選擇器。我們只允許出生日期在一定年齡範圍內的申請。我啓用了ChangeYear並將YearRange設置爲「-65:-16」。我遇到的問題如下:jQueryUI DatePicker YearRange和ChangeYear問題

1 - 當我在未選擇年份下拉列表中選擇某個日期的情況下選擇某個日期時,我得到正確的月份和日期,但我將2016年定爲一年。

2 - 試圖解決這個問題我將YearRange設置爲「n-65:n-16」。這導致今年的下拉菜單僅顯示當年(2010年)。更加古怪的是,如果你選擇一個日期,你仍然可以得到正確的月份和日期,以及2016年

下面是我用它來設置的日期選擇器代碼:

<script type="text/javascript"> 
    $(document).ready(function (e) { 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

     function EndRequestHandler(sender, args) { 
      $(function() { 
       $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' }) 
      }); 
     } 

     $(function() { 
      $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' }) 
     }); 
    }); 
</script> 

我希望這個是我做錯了事,有人可以告訴我那是什麼。謝謝你的幫助。

+0

什麼版本的jQuery和jQuery UI您使用的是? – 2010-12-23 20:44:33

+0

我正在使用1.4.4和1.8.7,我也嘗試過早期版本,結果相同。 – CoreyT 2011-01-07 18:45:03

回答

18

嘗試使用 'C' 當年像:

$('.datepicker').datepicker({changeYear: true, yearRange : 'c-65:c+10'}); 

更多資料查看http://api.jqueryui.com/datepicker/#option-yearRange

+0

我已經嘗試了上面的代碼,但在我的情況下它不起作用。對於已經添加的日期,日期字段預先填充爲m/d/y ex:01/01/xxxx。 – sangam 2016-01-11 14:22:56

1

檢查您的defaultDate設置。我只能看到您將默認日期更改爲指定年份範圍之外的內容(即'1-1-2016')。您發佈的代碼中的其他內容都適用於我。

1

也碰到過這個問題。我沒有進一步研究,但通話順序似乎有所作爲。

這個工程:

$('DIV#startdate').datepicker('option', { dateFormat: 'yy-mm-dd' }); 
$('DIV#startdate').datepicker('setDate', '10-09-11'); 
$('DIV#startdate').datepicker('option', { changeYear: true }); 

這說明今年列表框只有2010:

$('DIV#startdate').datepicker('option', { dateFormat: 'yy-mm-dd' }); 
$('DIV#startdate').datepicker('option', { changeYear: true }); 
$('DIV#startdate').datepicker('setDate', '10-09-11'); 
1

嘗試給出具有實際年份值的範圍。例如

$('.datepicker').datepicker({changeYear: true, yearRange : '1990:2010'}) 

他們也應該使用任何dateformat。

1

嘗試使用的maxDate和的minDate選項,如:

$(document).ready(function() { 
    $("#datepicker").datepicker({ 
     yearRange: '-65:-13', 
     changeMonth: true, 
     changeYear: true, 
     defultDate: '1-1-1994', 
     dateFormat: 'mm-dd-yy', 
     minDate:"-65Y", 
     maxDate:"-13Y" 
    }); 
});