7

フィドルへのリンク: http://jsfiddle.net/nEapJ/ (動作中)

var items = [{
   label : 'a',
   value : 'a',
},{
   label : 'b',
   value : 'b',
},{
   label : 'c',
   value : 'c',
}];

$('input').autocomplete({
    source : items
});​

このコードは機能しますが、コールバック関数でソースを設定したい場合は機能しません

フィドルへのリンク: http://jsfiddle.net/B3RWj/ (動作していません)

$('input').autocomplete({
    source : function(request, response){
            response(items);
          }
});​

「a」と入力すると、結果としてa、b、cが得られます。

それで、私は何が欠けていますか?

前もって感謝します。

4

3 に答える 3

2

コールバック関数では、フィルタリングを行うのはあなた次第です..

ドキュメントからの抜粋:

3 番目のバリエーションであるコールバックは、最も柔軟性が高く、任意のデータ ソースをオートコンプリートに接続するために使用できます。コールバックは 2 つの引数を取得します。

テキスト入力の現在の値を参照する「term」と呼ばれる単一のプロパティを持つリクエストオブジェクト。たとえば、ユーザーが都市フィールドに「new yo」と入力すると、オートコンプリートの用語は「new yo」になります。ユーザーに提案するデータが 1 つの引数に含まれていることを期待する応答コールバック。このデータは、提供された term に基づいてフィルタリングする必要があり、上記の単純なローカル データの任意の形式 (ラベル/値/両方のプロパティを持つ文字列配列またはオブジェクト配列) にすることができます。リクエスト中のエラーを処理するカスタム ソース コールバックを提供する場合に重要です。エラーが発生した場合でも、常に応答コールバックを呼び出す必要があります。これにより、ウィジェットが常に正しい状態になることが保証されます。

于 2012-09-14T13:10:42.253 に答える
2

コードを参照してください:

$('input').autocomplete({
    source : function(request, response){
        var term = request.term;
        var result = [];

        //make your code here to filter the item by term. 
        //put them into the result array such as.

        response(result);//this will show in the selection box.
    }
});​
于 2014-05-13T14:38:27.367 に答える