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

前端之家收集整理的这篇文章主要介绍了如何检测用户何时忽略jquery自动完成建议前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果用户输入文本而不选择一组自动完成建议,我们需要能够调用处理程序.

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

我们的表单的工作方式是用户开始输入联系人的姓氏,并获得自动填充建议,包括联系人的全名和公司.如果用户选择其中一个自动填充建议,我们会填充多个字段.这一切都很好.

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

看看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.

原文链接:https://www.f2er.com/jquery/180829.html

猜你在找的jQuery相关文章