6

通常のJquery datepickerが正常に動作しています。しかし、それを1つのテキストフィールドではなく、一連の選択ボックスに送りたいと思っています。特定のフォーマットで1つの選択フィールドにフィードすることに成功しましたが、3つすべてを異なるフォーマットの異なるフィールドにフィードする方法がわかりません。

$(document).ready(function(){
  $("#search_startdate").datepicker({showOn: 'button', 
                                     buttonImage: '/images/cal/calendar.gif', 
                                     buttonImageOnly: true, 
                                     minDate: 0, 
                                     maxDate: '+6M +10D', 
                                     showAnim: 'fadeIn',
                                     altField: '#startdate_month', 
                                     altFormat: 'MM',
                                     altField: '#startdate_day',
                                     altFormat: 'dd'});
    //$("#datepicker").datepicker({showOn: 'button', buttonImage: 'images/calendar.gif', buttonImageOnly: true});

});

これは機能しません。最後のフィールドでは機能しますが、最初のフィールドは無視します。altField と altFormat 行の 2 番目のセットを削除すると、最初の行が機能します。

シリーズ化も試みましたが、

altField: '#startdate_month', '#start_day', altFormat: 'MM', 'dd'

問題はここと同じです:

http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Jquery/Q_24767646.html

何か案は?

ありがとう、

4

3 に答える 3

8

単一の代替フィールドを使用してセットアップを使用して最初の選択を取得し、onClose ハンドラーを使用して日付を解析し、他の選択を埋めることをお勧めします。

$(document).ready(function(){
  $("#search_startdate").datepicker({showOn: 'button', 
                                     buttonImage: '/images/cal/calendar.gif', 
                                     buttonImageOnly: true, 
                                     minDate: 0, 
                                     maxDate: '+6M +10D', 
                                     showAnim: 'fadeIn',
                                     altField: '#startdate_month', 
                                     altFormat: 'MM',
                                     onClose: function(dateText,picker) {
                                                 $('#startdate_day').val( dateText.split(/\//)[1] );
                                              }
                                    });
});
于 2010-01-17T13:49:21.840 に答える
1

これは私が思うより簡単です:

$('#datePickerField').datepicker({
    onClose: function (dateText) {
                var objDate = new Date(dateText);
                $('#year_field').val(dateText.length ? objDate.getFullYear() : '');
                $('#month_field').val(dateText.length ? objDate.getMonth() + 1 : '');
                $('#day_field').val(dateText.length ? objDate.getDate() : '');
            }
});

日、月、年のフィールドに変更を加えたい場合は、メインのデータピッカーを更新します。

$('#year_field,#month_field,#day_field').change(function() {
    $('#datePickerField').datepicker('setDate', new Date(
        parseInt($('#year_field').val(), 10),
        parseInt($('#month_field').val(), 10) - 1,
        parseInt($('#day_field').val(), 10)));
});
于 2012-02-26T18:25:30.580 に答える