7

以下の人気のある JQuery Autocomplete プラグインを使用しています。

http://jqueryui.com/demos/autocomplete/

現在、フレーズを入力するとドロップダウンが表示されますが、クリックすると非表示になります。これで問題ありません。ただし、ドロップダウンを元に戻す唯一の方法は、入力フィールドをクリックしてさらに文字を入力するか、キーダウンを押すことです。

ユーザーが入力フィールドをクリックしたときに結果のドロップダウンをトリガーする方法についてのアイデアはありますか? 入力フィールドのフォーカス イベントをトリガーしようとしましたが、うまくいきません。入力フィールドがフォーカスされているときに、オートコンプリート ドロップダウン イベントを手動で呼び出す必要があります。ありがとう。

4

3 に答える 3

37
于 2012-06-23T09:48:48.750 に答える
2

ドキュメントによると、そうする明白な方法はありません。ただし、有効になっているfocus(またはclickまたはkeyup)イベントで試すことができます:autocompletetextbox

$('#autocomplete').trigger("keyup"); 

また

$('#autocomplete').trigger("focus"); 

また

$('#autocomplete').trigger("click"); 

@Tats_innitがコードについて言及したように、その後は次の行を追加するだけです

$('#tags').trigger("focus"); // as @Tats_innit's solution bind focus
                             // so you need to trigger focus

デモ

于 2012-06-23T09:46:27.770 に答える
0

上記のコードに追加します。私の場合、availableTags はサーバーの値からロードされていました。したがって、値が空白の場合にのみポップアップを開く必要がありました。これにより、サーバーがフォーカス時にタグを再度ロードするための不要なトリガーが節約されます。

$( "#tags" ).autocomplete({
        source: availableTags,
        minLength:0
    }).bind('focus', function () {
            if ($(this).val().length == 0) {
                $(this).autocomplete("search", "");
            }
        });
于 2019-06-05T03:59:19.253 に答える