0

jQueryオートコンプリートを使用するこの基本的な例では、次のようになります。

$("#textboxid").autocomplete(
    {
        source: testdata,
        delay: 100,
        minLength: 1
    });

データのローカル配列はどこtestdataにありますか?基になるソース配列に変更を加え、オートコンプリートオプションに反映するための推奨される方法は何ですか?

現在、testdata配列に新しいアイテムを追加した場合(つまり、テキストボックス要素でオートコンプリートが既に設定された後)、オートコンプリートリストにその新しいオプションが表示されません。ページに新しいテキストボックスを動的に追加してオートコンプリートを設定すると、新しいオプションが表示されます。しかし、既存の要素はそうではありません。

4

2 に答える 2

1

最も柔軟な方法は、コールバックをソースとして使用することです。これは、配列/オブジェクト/サーバーにデータをポーリングし、適切な応答を返します。

これをテストする方法の例を次に示します。

var testdata = ["foo","bar","baz","quux"];
$("#textboxid").autocomplete({
    source: function(request, callback) {
        var possiblematches = testdata.filter(function(v) {
            return v.match($.ui.autocomplete.escapeRegex(request.term));
        });
        callback(possiblematches);
    },
    delay: 100
});

デモンストレーション: http://jsfiddle.net/Eeg5L/sourceこのオプションのドキュメントと詳細情報は、ここにあります。

または、次を使用して配列を変更した後にソースをリセットすることもできます。

$("#textboxid").autocomplete("option","source", testdata);

配列を変更するたびにこれを自動的に行う配列のセッターを使用することをお勧めします。

于 2012-11-30T15:03:48.413 に答える
0

更新するときにこれをtestdata実行します:

$('#textboxid').autocomplete('option', 'source', testdata);
于 2012-11-30T15:03:51.123 に答える