jQuery UI自动完成 - 没有响应导致功能中止

时间:2012-05-16 18:53:33

标签: jquery jquery-ui autocomplete

我仍然是jQuery的新手,但我能够配置jQuery UI并在我的搜索框上实现自动完成功能。但是,我遇到了一些问题。有时,自动完成功能会中断,导致搜索框本身消失。 Firebug告诉我,行动正在中止,并且没有收到任何回复。

Firebug Console Error

这些错误没有明显的模式,下次我尝试使用同一个术语时,我怀疑这是一个数据问题。主要问题是,这会导致搜索框从页面完全消失,直到页面刷新。有没有办法阻止这种情况发生?如果需要,我很乐意提供更多信息。

$(document).ready(function($){
  $('.search').each(function(){
    var self = $(this);
    self.autocomplete({source: "/products/autocomplete"});
  });
});

2 个答案:

答案 0 :(得分:0)

看看Pedro发布的链接,这个答案看起来是一个很好的起点: Firebug 1.5 showing 200 Aborted for Ajax requests

为了进一步调试,我还建议包装行

self.autocomplete({source: "/products/autocomplete"});

尝试使用执行console.log或alert的catch。您是否在Firebug的控制台日志中看到有关javascript错误或http中止的任何内容?在尝试中包装该行可能是一个很好的模式,可以防止网络错误在页面生命周期的剩余时间内消除该控件。

答案 1 :(得分:0)

奇怪的是,当我尝试使用Firebug的搜索框时,我在firebug本身(firebug 1.9)中看到完全相同的“消失”行为。单击搜索框以获得焦点后,{[区分大小写],[上一页],[下一页]}弹出窗口立即显示并消失,在弹出窗口消失的同时散焦光标。这可以防止使用搜索框。

我确实有一个解决方法,但是:单击多次,非常快,偶尔会弹出弹出窗口而不会消失。一旦我可以弹出弹出窗口,我就可以在搜索框中输入文本。但是,当我将注意力集中在其他地方时,弹出窗口会消失,因此很难单击[下一步]以获取搜索字符串的下一次出现。再次快速点击也是一种解决方法!

我无法在Chrome的调试器中复制此内容。