jQueryUI DatePicker YearRange と Change Year の問題
-
12-10-2019 - |
質問
申請フォームに日付ピッカーがあります。生年月日が一定の年齢範囲内にある場合のみお申し込みを受け付けております。Change Year を有効にし、 YearRange を「-65:-16」に設定しました。私が抱えている問題は次のとおりです。
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>
これが私が間違ったことをしたので、誰かがそれが何であるかを教えてくれることを願っています。助けていただきありがとうございます。
解決
次のように現在の年に「c」を使用してみてください。
$('.datepicker').datepicker({changeYear: true, yearRange : 'c-65:c+10'});
詳細については、こちらをご覧ください http://api.jqueryui.com/datepicker/#option-yearRange
他のヒント
defaultDate 設定を確認してください。デフォルトの日付を指定された年の範囲外(つまり、「2016 年 1 月 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' );
実際の年の値で範囲を指定してみてください。例えば
$('.datepicker').datepicker({changeYear: true, yearRange : '1990:2010'})
また、任意の日付形式でも機能する必要があります。
次のように 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"
});
});