微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测用户何时忽略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.jb51.cc/jquery/180829.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐