1

日付をmm/yy形式で表示するためのJQuery日付ピッカーが含まれているページがあります。私は最初のJQueryを作成していませんでしたが、あまり詳しくないため、これは単純な問題かもしれませんが、ユーザーが[完了]ボタンをクリックすると、日付ピッカーが1秒間消えてから、ユーザーがクリックしたかのように開きます。再びテキストボックスに。

日付ピッカーをインスタンス化するために使用されるコードは次のとおりです。

$(function() {
    $('.datepicker').datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/yy',
        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).datepicker('setDate', new Date(year, month, 1));
        },
        beforeShow: function(input, inst) {
            if ((datestr = $(this).val()).length > 0) {
                year = datestr.substring(datestr.length - 4, datestr.length);
                //month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $(this).datepicker('option', 'monthNames'));
                month = datestr.substring(0, datestr.length - 5);
                $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
                $(this).datepicker('setDate', new Date(year, month-1, 1));
            }
        }
    });
    $("#datepicker").mousedown(function() {
        $('#ui-datepicker-div').toggle();     
    });
});

しばらくグーグルした後、マウスダウンハンドラーを追加しました。これにより、ページの日付ピッカーから離れた場所をクリックすると、期待どおりに閉じますが、完了ボタンをクリックしても、実際には日付ピッカーは閉じません。

4

2 に答える 2

0

これが問題だと思います:

$("#datepicker").mousedown(function() {
    $('#ui-datepicker-div').toggle();     
});

マウスダウンでフォームの表示/非表示を切り替えます。日付または完了ボタンをクリックすると、日付ピッカーが自動的に非表示になります。これをコードから削除してみてください。

于 2012-10-01T18:25:26.077 に答える
0

期待どおりに動作します。私が設定したフィドルにバグは見られませんhttp://jsfiddle.net/adrianonantua/ZQTqe/

于 2012-10-01T15:50:39.537 に答える