質問のタイトルがあいまいであることに同意しますが、より良いタイトルが見つかりませんでした。
問題:
$('[id="SearchSnippetActor"]').autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "foo/foo.asmx",
data: // pass data,
dataType: "json",
async: true,
success: function (data) {
// do something
label: 'blah blah',
val: 'blah blah'
}))
},
});
}, select: function (e, i) {
$('#'+e.target.id).val(i.item.val);
$('#DisplaySnippetActor').text(i.item.label);
return false;
}
});
これらのテキストボックスとラベルのペアがあります。オートコンプリートであるため、テキストボックスで値を選択するたびに、「val」と「label」をラベルに保存しています。
それはうまくいっています。問題は、すべてのペアについて、コード全体をコピーしてテキストボックス/ラベル ID を置き換える必要があるということです。
とにかくセレクターを最適化して、単一の関数を作成する必要がありますか?
ペアの例:
DisplaySnippetType : SearchSnippetType DisplaySnippetText : SearchSnippetText
ありがとう、開発者