1

日付範囲を選択するための日付ピッカーが 2 つあります。jquery UI のデモ ページのデモと同じように機能しますが、ユーザーが実際に日付フィールドの値を手動で削除すると、他の日付フィールドを最初の状態にリセットする必要があります。以下のコードを記述しようとしましたが、奇妙な理由で、fromカレンダーで日付を選択するたびにtoフィールドに表示され、minDate/maxDate 設定がまったく機能しないようです。

$( "#dt_from" ).blur(function(){
        if($(this).val()=="")
        {
            $( "#dt_to" ).datepicker( "option", "minDate", "+0" );
        }
    }).datepicker({
        defaultDate: "+0d",
        showOn: "button",
        buttonImage: "images/Cal.gif",
        buttonImageOnly: true,
        minDate:+0,
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function( selectedDate ) {
            $( "#dt_to" ).datepicker( "option", "minDate", selectedDate );
        }
    });
    $( "#dt_to" ).blur(function(){
        if($(this).val()=="")
        {
            $( "#dt_from" ).datepicker( "option", "maxDate", "" );
        }
    }).datepicker({
        defaultDate: "+0d",
        showOn: "button",
        buttonImage: "images/Cal.gif",
        buttonImageOnly: true,
        minDate:+0,
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function( selectedDate ) {
            $( "#dt_from" ).datepicker( "option", "maxDate", selectedDate );
        }
    });

ぼかしイベントがどういうわけかこの混乱を引き起こしていると思いますが、それを修正する方法がわかりません.

4

1 に答える 1

1

ここの別の投稿に感謝しますjQuery UI Datepicker calendar で選択した日付をクリア/リセットするにはどうすればよいですか? これを解決する方法を見つけました。今後の参考のために、ここにコードを投稿します。

$( "#dt_from" ).prop("readonly",true).datepicker({
        defaultDate: "+0d",
        showOn: "button",
        buttonImage: "images/Cal.gif",
        buttonImageOnly: true,
        minDate:+0,
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function( selectedDate ) {
            if(selectedDate!="")
            {
                $( "#dt_to" ).datepicker( "option", "minDate", selectedDate );
            }
        }
    }).keyup(function(e) {
        if(e.keyCode == 8 || e.keyCode == 46) {
            $.datepicker._clearDate(this);
            $( "#dt_to" ).datepicker( "option", "minDate", "today" );
        }
    });
    $( "#dt_to" ).prop("readonly",true).datepicker({
        defaultDate: "+0d",
        showOn: "button",
        buttonImage: "images/Cal.gif",
        buttonImageOnly: true,
        minDate:+0,
        changeMonth: true,
        numberOfMonths: 3,
        onClose: function( selectedDate ) {
            if(selectedDate!="")
            {
                $( "#dt_from" ).datepicker( "option", "maxDate", selectedDate );
            }
        }
    }).keyup(function(e) {
        if(e.keyCode == 8 || e.keyCode == 46) {
            $.datepicker._clearDate(this);
            $( "#dt_from" ).datepicker( "option", "maxDate", "" );
        }
    });

安全のためにフィールドを読み取り専用にしてから、del/bkspace キー チェック内でオプションをリセットしました。

于 2013-02-21T05:51:38.780 に答える