以下は、appendTo
AJAX ソースを使用して jQuery オートコンプリートを使用するための私の試みです。
複数の質問がありますが、AJAX ソースを使用してオートコンプリートを実装する正しい方法を理解するのに苦労している他の多くの人に役立つことを願っています。
1)source: function(request, response) {...}
これは何をしますか? なぜそれが必要なのですか。
2)function(data){ response($.map (data, function(obj) {
データはどのような形式で返されますか? データが JSON 形式であることは認識していますが、そのポイントは.map
何ですか? これを行う必要がありますか?メリットはありますか?
3a) と を使用する場合appendTo
、renderItem
上記のsuccess
データを返す必要がありますか?
3b) または、上記のデータに応じて、appendTo と renderItem をどのように正しく使用して、取得した値の書式設定と表示を変更しますか?
$(function() {
$( ".find_group_ac" ).autocomplete({
minLength: 1,
source: function(request, response) {
$.ajax({
url: "welcome/search/",
data: { term: $(".find_group_ac").val()},
dataType: "json",
type: "POST",
success: function(data){ response($.map
(data, function(obj) {
return {
label: obj.name + ': ' + obj.description,
value: obj.name,
id: obj.name
};}));}
});
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};
});
これは答えるのが大変に思えるかもしれませんが、多くの JavaScript 初心者にとって、そして確かに私自身にとって価値があると確信しています。