【发布时间】:2012-09-18 10:17:44
【问题描述】:
谁能想到为什么我的 JQuery 自动完成并不总是显示其建议菜单的任何原因?我总是输入相同的有效关键字,但结果并不总是显示出来。
这是我正在使用的 JS:
$(document).ready(function(){
$("input#q").autocomplete({
minLength: 2,
delay: 350,
source: "ac.php"
});
});
当我检查 Firefox 的 Web 控制台时,它显示它已加载 ac.php 并带有 OK 状态代码。我尝试了不同的关键字,但没有一个出现。这都是断断续续的,就像我重新加载页面几次或关闭浏览器一样,它有时会再次工作。
当我手动转到 ac.php?term=whatever 时,它总是显示有效关键字的结果。
但是,当我将源设置为 ["Hi", "there"] 时,它可以正常工作。
我正在将这些加载到文档的 head 标记中:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
edit:将数据返回给ac.php的函数
private function to_json($results)
{
$output = array();
foreach($results as $result)
{
$output[] = $result->name; // nothing is escaped here
}
if(sizeof($output) > 1)
{
$uniques = array_unique($output);
$buffer = array();
foreach($uniques as $unique)
{
$buffer[] = $unique;
}
$output = $buffer;
}
return json_encode($output);
}
样本输出:
["Sennheiser MM-100 Stereo Bluetooth 2.0 Headset Invisible Mic USB","Polycom VSX7000E W\/POWERCAM CAMERA\/ Soundstation VTX1000\/MIC\/CODE54 (Maintenance Contract Required)","Polycom HDX 7000-720 Kit W\/ Eagle Eye HD Camera HDX Mic","Polycom HDX 6000-720V Kit W\/ Eagle Eye HD Camera Mic Remote"]
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
ac.php 是什么样的?那里可能有问题?
-
如果你发布了一个小提琴,我们可以看到发生了什么,而不是从有限的信息中猜测......见jsfiddle.net
-
这是您要的fiddle。抱歉,不太清楚如何使用该网站。
-
ac.php 怎么样?它看起来像什么?
-
ac.php 只是调用上面的 to_json() 文件。我将在上面编辑它的输出。
标签: jquery autocomplete intermittent