【问题标题】:Stopping jQuery Autocomplete when field focus is lost当字段焦点丢失时停止 jQuery 自动完成
【发布时间】:2012-03-22 15:17:45
【问题描述】:

我有一个输入字段,它使用自动完成来显示与用户输入的文本可能匹配的列表,并且在该字段下是另一个输入字段。当用户输入文本然后单击其下的下一个字段时,自动完成下拉菜单会覆盖该输入字段。

我只想在字段仍有焦点时显示自动完成下拉菜单,并且当焦点丢失时中止自动完成操作。

我的代码是这样的。

var inputID = "#"+model+field;
$(inputID).autocomplete({
    source: autoURL,
    delay: 0,
    minLength: 1
});

模型和字段被定义为函数参数。

我想我可以附加一个事件来捕捉焦点的丢失,然后调用 $(inputID).abort() 之类的东西来取消自动完成。或者我可以在它下面的字段中添加一个焦点事件处理程序来触发中止。我没有尝试过任何工作,而且我查看了自动完成的代码,但找不到阻止它的方法。

我正在运行 jQuery 1.7.1 和 jQuery UI 1.8.18

任何帮助都会很棒。

谢谢

【问题讨论】:

    标签: jquery autocomplete


    【解决方案1】:

    根据the documentation,可以调用$(inputID).autocomplete('close');关闭自动补全。

    【讨论】:

    • 当另一个字段获得焦点时,我尝试调用$(inputID).autocomplete('close'),但它不会停止自动完成 ajax 调用。我阅读了文档,并理解它意味着它会在显示后隐藏弹出窗口。我希望阻止它到达那个地步。
    • 如果源字段没有焦点,我可以通过从 open 事件调用 close 来实现它。不会中止 ajax 调用,但仍会产生我需要的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2011-04-24
    • 2014-06-26
    相关资源
    最近更新 更多