0

jquery Datepicker UI を使用しています。この UI を使用して月と年のみを表示する必要があります。次のコードを使用してそれを取得しました:

$(function() {
         $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'yy-mm',
        onChangeMonthYear: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));

        }
    });
});

HTML :

<input type='text' id='date' name='eattdate' class='date-picker' value='".$date."' style='width:105px;'>

これは正常に機能し、現在の月と年がデフォルトで表示されますが、月と年を選択したいと思います。

4

2 に答える 2

0

まず、あなたはカレンダーの非表示を見逃していると思います (そして、月と年しか扱っていないので、あなたはそれを望んでいると思いますが、私は間違っているかもしれません)。したがって、これが本当に意図している場合は、次を使用します。

.ui-datepicker-calendar {
    display: none;
}

CSS ファイル内。

ここで、以前に選択した日付に日付ピッカーが開かない場合はbeforeShow、次のように を導入できます。

$(function() {
     $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'yy-mm',

        onChangeMonthYear: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();

            $(this).datepicker('setDate', new Date(year, month, 1));
        },

        beforeShow: function() {
            var dateText = $(this).val();
            var isPopulated = dateText.length > 0;

            if (isPopulated) {
                var selectedDate = $.datepicker.parseDate("yy-mm-dd", dateText + "-01");

                $(this).datepicker("option", "defaultDate", selectedDate);
                $(this).datepicker("setDate", selectedDate);
                $(this).datepicker("refresh");
            }
        }
    });
});

これはあなたが望むものを手に入れるはずだと私は信じています。

于 2014-05-10T22:00:44.903 に答える
-1

これを試して:

defaultDate: new Date()
于 2012-09-22T07:05:42.243 に答える