jQuery UI オートコンプリートを備えたテキスト フィールドがあります。ユーザーに何かを入力させ、オートコンプリートでオプションを表示させ、ユーザーがオプションをクリックすると、ぼかし/フォーカスアウトをトリガーして、ユーザーが値を選択したことを示します。
残念ながら、オートコンプリート オプションをクリックすると、jQuery UI はテキスト フィールドにフォーカスを置いたままになるようです。
これを修正する方法についてのアイデアはありますか?
jQuery UI オートコンプリートを備えたテキスト フィールドがあります。ユーザーに何かを入力させ、オートコンプリートでオプションを表示させ、ユーザーがオプションをクリックすると、ぼかし/フォーカスアウトをトリガーして、ユーザーが値を選択したことを示します。
残念ながら、オートコンプリート オプションをクリックすると、jQuery UI はテキスト フィールドにフォーカスを置いたままになるようです。
これを修正する方法についてのアイデアはありますか?
close
オートコンプリート フィールドのイベントを使用できます。
クイックリファレンス:
メニューが非表示になったときにトリガーされます。すべての終了イベントに変更イベントが伴うわけではありません。
コード:
$("#tags").autocomplete({
source: availableTags,
close: function(){
this.blur();
}
});
Irvin の回答は、これを修正する方法を理解するのに役立ちましたが、 close 関数を使用すると、悪い副作用が生じる可能性があります。結果の表示を開始した後にオートフィルが結果の表示を停止した場合、閉じる関数がトリガーされるため、この場合、何かが選択される前にぼかしもトリガーされます。
代わりに、「this.blur();」を追加するだけです。返すものを選択した後、選択関数に追加します(または、デフォルトの選択を使用している場合は単に追加します)。
彼のコード例を使用して:
$("#tags").autocomplete({
source: availableTags,
select: function(){
this.blur();
}
});