4

続いて、日付ピッカーウィジェットから2つの日付を選択する必要があります。次に、最初の日付が選択されたときに2番目の日付に焦点を合わせます。私はそれを次のように設定しました:

<input type="text" class="date" id="fromDate" name="fromDate"/>
<input type="text" class="date" id="toDate" name="toDate"/>

$("input.date").datepicker({
    onSelect: function(){
        $(this).next(".date").focus();
    }
});

しかし、最初の日付を選択すると、2番目の日付が開き、ウィンドウが閉じます...なぜですか?

onCloseイベントが機能することを確認しましたが、最初の日付が選択されていない場合は、他の日付を開きたくありません...

フィドルから試してみてください:http://jsfiddle.net/Ld98p/1/

4

2 に答える 2

4

それは面白い。datepickerウィジェットのshow()メソッドを呼び出しても、同じ動作になります。

onSelectコールバックはイベントごとに非常に複雑な状況で呼び出されるようでありfocus、コールバック自体からのポップアップのトリガーまたは強制表示は信頼できません。

ただし、focusわずかに遅延した関数からのトリガーは機能しているように見えます。

$("input.date").datepicker({
    onSelect: function() {
        window.setTimeout($.proxy(function() {
            $(this).next(".date").focus();
        }, this), 10);
    }
});

更新されたフィドルでテストできます。

于 2012-11-04T12:25:50.953 に答える
0

受け入れられた答えは私にはうまくいきませんでしたが、次のバリエーションはうまくいきました:

$("input.date").datepicker({
    onSelect: function() {
        window.setTimeout($.proxy(function() {
            $('.date').datepicker('show');
        }, this), 10);
    }
});
于 2017-08-31T19:12:47.570 に答える