JQuery自动完成并不总是激发

时间:2012-09-18 10:17:44

标签: jquery autocomplete intermittent

任何人都可以想到为什么我的JQuery自动完成并不总是显示其建议菜单的原因?我总是输入相同的有效关键字,但结果并不总是显示出来。

这是我正在使用的JS:

$(document).ready(function(){
    $("input#q").autocomplete({
        minLength: 2,
        delay: 350,
        source: "ac.php"
    });
});

当我检查Firefox的Web控制台时,它显示它已加载带有OK状态代码的ac.php。我尝试了不同的关键字,但没有一个出现。这一切都是间歇性的,但好像我重新加载页面几次或关闭浏览器,它有时会再次运行。

当我手动转到ac.php?term = whatever时,它总是会显示有效关键字的结果。

但是,当我将source设置为[“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"]

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

你为什么不试试这种方式。我正在以这种方式工作: -

$(“。autocomplete_text”)。autocomplete(“ac.php”,{         倍数:真的,         mustMatch:false,         autoFill:false });