3

私はjQueryUIDatepicker、.を使用しています。

Datepickerは正常に機能しますが、カレンダーの外側をクリックするか、Escapeボタンをクリックすると閉じます。ただし、[完了]ボタンをクリックした場合にのみ日付ピッカーを閉じたいと思います。

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

    onclose: function(dateText, inst) {
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
        $(this).val($.datepicker.formatDate('yy-mm', new Date(year, month, 1)));
    }
});

これどうやってするの?

4

2 に答える 2

1

日付ピッカーを閉じるトリガーを制御することはできません。あなたが得ることができる最も近いのは、おそらくインラインの日付ピッカーを作成し、自由に表示/非表示にすることです。ただし、インライン日付ピッカーは通常非表示にする必要がないため、「完了」ボタンはインライン日付ピッカーに表示されません。ハッキーにならずに、私が得た最も近いものは次のとおりです。

http://jsfiddle.net/william/c8Kcs/1/

HTML:

<input id="date" /> <button id="done">Done</button>
<div class="date-picker"></div>

JavaScript:

$(".date-picker").hide().datepicker({
    dateFormat: 'mm-yy',
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    altField: '#date'
});

$('#date').click(function() {
    $(".date-picker").show();
    $('#done').show();
});

$('#done').hide().click(function() {
    $(".date-picker").hide();
    $(this).hide();
});
​
于 2012-09-24T14:40:51.067 に答える