jquery - 如何检测用户何时忽略 jquery 自动完成建议

标签 jquery autocomplete

如果用户输入文本而没有从一组自动完成建议中进行选择,我们需要能够调用处理程序。

在我们的例子中,输入的文本是否与任何自动完成值匹配并不重要 - 我们只关心用户是否点击/选择自动完成值,或不

我们表单的工作方式是,用户开始输入联系人的姓氏,然后会收到自动填充建议,包括联系人的全名和公司。如果用户选择自动完成建议之一,我们将填充多个字段。一切正常。

新的要求是,如果用户没有选择其中一项建议,我们需要清空多个字段 - 我们希望使用从自动完成库调用的处理程序来实现这一点。

查看 previous answers ,看起来我们不能用 Jörn Zaefferer's autocomplete plugin 来做到这一点,但是如果您有补丁或知道如何实现该功能,这就是我们尝试将其插入的库。

最佳答案

我遇到了非常有趣的答案。它涉及 jQuery 插件如何管理其状态。当我查看 firebug(使用 firequery)时,我发现当我单击显示 DOM 节点的 jQuery 属性的图标(在 HTML 选项卡中)时,它显示了附加到 DOM 节点的所有插件数据,并且附加到该节点的是整个自动完成参数。因此我找到了解决方案。

$('#test').autocomplete({
    change:function( event, ui ) {
        var data=$.data(this);//Get plugin data for 'this'
        if(data.autocomplete.selectedItem==undefined)
            alert("manual");
        else
            alert("selected");      
    }
});

自动完成的作用是,如果我们从列表中选择,则 selectedItem 包含我们刚刚选择的 JSON 对象及其所有属性。但如果我们按 ESC 或取消自动填充,它就会设置为 null。

关于jquery - 如何检测用户何时忽略 jquery 自动完成建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267149/

相关文章:

javascript - 什么时候应该使用 jQuery 的 document.ready 函数?

css - Tapestry:Mixin Autocomplete 弹窗带网页滚动条上下 float

jQuery 自动完成功能无法正常工作

autocomplete - Solr仅对Suggester组件返回一个排序规则

Jquery 自动完成响应输入键

javascript - 如何在 Bootstrap 中切换模式窗口?

javascript - 使用 remove() 从列表中删除某些项目后显示相同的长度

jquery - 具有自动宽度和自动高度的居中 jQuery 弹出对话框

javascript - mcautocomplete 在 slickgrid 上消失

javascript - 在jquery中使用此关键字获取所选选项的文本值