Javascript jQuery UI自动完成小部件和Chrome中的renderItem
当用户在输入框中输入时,我使用autocomplete小部件显示建议的下拉列表Javascript jQuery UI自动完成小部件和Chrome中的renderItem,javascript,jquery,jquery-ui,autocomplete,jquery-autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,Jquery Autocomplete,当用户在输入框中输入时,我使用autocomplete小部件显示建议的下拉列表 jQuery 1.10.2 jQuery UI JS 1.11.2 jQuery UI CSS 1.11.2 在Firefox(29.0.1)和Safari(7.0.6)中,一切似乎都很好,但经过几个小时的尝试,在Chrome(38.0)中似乎都不起作用 编辑:没有警告,没有错误,也没有下拉菜单显示 $("#MyInput").autocomplete({ source: "/contacts/ajax_
- jQuery 1.10.2
- jQuery UI JS 1.11.2
- jQuery UI CSS 1.11.2
$("#MyInput").autocomplete({
source: "/contacts/ajax_search.json"
}).data("uiAutocomplete")._renderItem = function(ul, item){
return $("<li>").append("<a>" + item.Contact.name + "</a>").appendTo(ul);
}
在Chrome中,renderItem甚至似乎没有被调用,即函数内部的console.log(item)
什么都不做
非常感谢任何帮助 问题似乎在于Chrome如何处理异步ajax请求,因为没有设置autocomplete小部件以通过标准选项同步发出请求的选项 解决方案如下,使用自定义
源
函数获取数据
$("#MyInput").autocomplete({
source: function(request, response) {
$.ajax({
url: "/contacts/ajax_search.json?term=" + request.term,
async: false,
success: function(data) {
response(data);
}
});
}
}).data("uiAutocomplete")._renderItem = function(ul, item){
return $("<li>").append("<a>" + item.Contact.name + "</a>").appendTo(ul);
}
$(“#MyInput”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“/contacts/ajax_search.json?term=“+request.term,
async:false,
成功:功能(数据){
答复(数据);
}
});
}
}).数据(“uiAutocomplete”)。\u renderItem=功能(ul,项目){
返回$(“”).append(“+item.Contact.name+”).appendTo(ul);
}
不要使用数据(“uiAutocomplete”)
,而是尝试使用数据(“uiAutocomplete”)
这两种数据(“uiAutocomplete”)
和数据(“uiAutocomplete”)
都可以在Safari和Firefox中使用,但不幸的是,这两种方法都不能在Chrome中使用!
$("#MyInput").autocomplete({
source: function(request, response) {
$.ajax({
url: "/contacts/ajax_search.json?term=" + request.term,
async: false,
success: function(data) {
response(data);
}
});
}
}).data("uiAutocomplete")._renderItem = function(ul, item){
return $("<li>").append("<a>" + item.Contact.name + "</a>").appendTo(ul);
}