1. ホーム
  2. javascript

[解決済み] JQuery UIオートコンプリートでsource: function()...とAJAXを使用する方法

2023-07-29 21:42:26

質問

JQuery UIオートコンプリートについて少し教えてください。私は私のテキストフィールドをしたい ( .suggest-user ) にAJAXリクエストからの名前を表示させたいです。これは私が持っているものです。

jQuery("input.suggest-user").autocomplete({
    source : function(request, response) {
        var name = jQuery("input.suggest-user").val();
        jQuery.get("usernames.action?query=" + name, function(data) {
            console.log(data);  // Ok, I get the data. Data looks like that:
            test = data;        // ["[email protected]", "[email protected]","[email protected]"]
            return test;        // But what now? How do I display my data?
        });
    },
    minLength : 3
});

どんな助けでも、とても感謝しています。

どのように解決するのですか?

AJAX コールバックの内部で response 関数を呼び出す必要があります; 表示する項目を含む配列を渡します。

jQuery("input.suggest-user").autocomplete({
    source: function (request, response) {
        jQuery.get("usernames.action", {
            query: request.term
        }, function (data) {
            // assuming data is a JavaScript array such as
            // ["[email protected]", "[email protected]","[email protected]"]
            // and not a string
            response(data);
        });
    },
    minLength: 3
});

レスポンスJSONがjQuery UIオートコンプリートが受け入れるフォーマットと一致しない場合、レスポンスコールバックに渡す前にAJAXコールバック内で結果を変換する必要があります。 この質問と受け入れられた答えを見る .