Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery UI自动完成小部件和Chrome中的renderItem_Javascript_Jquery_Jquery Ui_Autocomplete_Jquery Autocomplete - Fatal编程技术网

Javascript jQuery UI自动完成小部件和Chrome中的renderItem

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_

当用户在输入框中输入时,我使用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_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);
    }