【发布时间】:2016-10-25 23:29:56
【问题描述】:
我正在使用 jQuery-ui 自动完成功能来创建一个带有远程数据源的搜索字段。一切正常,我得到了结果,但是结果并没有像预期的那样显示在文本字段下方的列表中。结果被放入列表并显示在页面底部。 这是我的代码:
<script>
$(function() {
$( "#autocomplete" ).autocomplete({
source: function(request,response)
{
$.ajax({
url: "<?php echo $this->webroot; ? >portfolios/ajax_clients_dropdown/"+request.term+".json?callback=ajax_clients_dropdown?",
// dataType: "text",
async: false,
//jsonp: "callback",
jsonpCallback: "ajax_clients_dropdown",
success: function(data)
{
var fin = [];
for(a=0;a<10;a++)
{
fin[a]= data[a].value;
}
console.log(fin);
response(fin);
console.log("success");
},
appendTo: "#autocomplete",
position: {'my': 'left top', 'at': 'left top', 'of': '#autocomplete'},
error: function(response){console.log("Fail");}
});
}
});
});
</script>
<div class = "ui-widget" id="container">
<label for ="autocomplete">Clients</label>
<input id = "autocomplete" style ="" autocomplete = "on">
</div>
无论天气如何,我都用#container 或#autocomplete 执行appendTo,它什么都不做。
这是应该显示的结果:
["3434a62c bf592581", "a3ee7766 7894a7e0", "ea41d8ec 4e7df334", "919f6fac 96d4cdf0", "24ecac17 bfbed443", "f0270fc4 a2659300", "ea803fac 94b43df4", "5337467f 1a41e158", "fc54b844 0a19b69e", "a7393c7b aaea998b"]
有人知道为什么会这样吗?
【问题讨论】:
-
你为什么使用 `jsonpCallback: "ajax_clients_dropdown" ?
-
ajax_clients_dropdown 是我正在调用的控制器中的函数名称。当我把它放在那里时它起作用了,遗憾的是我不明白为什么它是必要的。
标签: ajax jquery-ui autocomplete