我使用Ajax对JQuery Autocomplete完全陌生。我有90%的方式使用下面的代码。使用Chrome开发工具,我可以在firstname:item.firstname1
旁边看到所有我的值,也就是说,名字,姓氏,电话等。如果我有3个匹配,他们都是顺序显示。然后我搞砸了。 lastname
和telephone
对象似乎是多余的,并且它们旁边没有任何内容。此外,没有任何值在屏幕上显示为选项。但是,有三个空选项显示找到的3个对象。我的select:function(event, ui)
也不起作用。我已经阅读了100次文档,我没有快速到达任何地方。
如果你能帮助它开展工作,我会非常感激,但也要非常感谢解释我做错了什么。 TKS!
Javascript:
$('#customer').autocomplete({
minLength: 2,
source: function(request, response,term) {
var param = request.term;
$.ajax({
url: "quotes/customer_search/"+param,
dataType: "json",
type:"GET",
success: function (data) {
response($.map(data, function(item) {
return {
firstname:item.firstname1, // My objects appear here.
lastname:item.lastname1, // these are redundant
telephone:item.telephone1, // redundant
};
}));//END Success
},
});//END AJAX
},
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.firstname + " " + ui.item.lastname :
"Nothing selected, input was " + this.value );
}
HTML
<div class="ui-widget">
<label for="customer">Birds: </label>
<input id="customer" class="ui-autocomplete-input" >
</div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
答案 0 :(得分:0)
我找到了一个帮助我解决问题的答案:
有一次,我已经意识到我的响应对象的语法需要更改为下面的代码。一旦改变一切正常。
success: function (data) {
response($.map(data, function(item,customer) {
return [item.firstname1+' '+item.lastname1+' '+item.telephone1]
}));//END Success
},