我的页面中有一个自动完成元素,我使用 json 来请求数据,但我看不到 UI。
我过去做了测试,默认功能
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
但是,我改变了我的数据结构
$(function () {
var availableTags = [
{"label":"one label", "value":"one value", "id":1},
{"label":"2 label", "value":"2", "id":2},
{"label":"3 label", "value":"3", "id":3},
{"label":"4 label", "value":"etc", "id":4}
];
$("#tags").autocomplete({
source: availableTags,
select: function(event, ui) {
$('#id_element').val(ui.item.id);//for example
}
});
});
我这样做是为了处理事件选择,现在我想从 json 获取数据
$("#inputskills").autocomplete({
source: function( request, response ) {
$.ajax({
url: '/' + getPathStr() + '/Skills/1?term='+request.term,
dataType: "json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function( data ) {
//alert(JSON.stringify(data));
response( $.map( data, function( item ) {
//alert(JSON.stringify(item));
alert(item.value+' - '+item.label+ ' - ' + item.id );
return{
label: item.label,
value: item.id
}
}));
}
});
},
select .....
我的服务返回正确的数据,当我使用警报功能显示数据时,是正确的数据,但是,自动完成没有工作,没有任何数据,我尝试更改返回代码,但我无法使其工作
我改成
return {
label: item.label,
id: item.id,
value: item.value
}
或者
return item;
但我仍然不能,请帮帮我。