如何判断是否从 JQuery UI 自动完成中选择了建议
我有一个连接到 JQuery UI 自动完成的文本框。当用户在框中输入内容时,我的搜索通过 ajax 调用运行并返回建议。似乎可能会发生三件事:
- 自动完成建议选项,用户选择其中之一
- 自动完成建议选项,但用户选择不选择其中任何一个
- 自动完成无法提出建议 - 不匹配(因此建议列表不匹配)显示)
处理上述所有场景,我如何判断用户是否从自动完成中选择了一个选项?
我已经研究过在搜索开始(match = false)和选择发生(match = true)时标记一个标志,但这似乎不是一个非常简洁的做事方式。
I have a text box that is wired to JQuery UI Autocomplete. As the user types in the box my search runs via an ajax call and returns suggestions. It seems that three things can happen:
- The autocomplete suggests options and the user selects one of them
- The autocomplete suggests options but the user chooses to select none of them
- The autocomplete can not make a suggestion - no match (so the list of suggestions do not display)
Dealing with all of the scenarios above, how can I tell if the user selects an option from the autocomplete?
I have looked into marking a flag when a search commences (match=false) and a select occurs (match=true) but this doesn't seem a very neat way of doing things.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
select
事件,例如 @bfavaretto 指出,但我认为在这种情况下使用更方便更改
事件:示例: http://jsfiddle. net/andrewwhitaker/3FX2n/
change
在字段模糊时触发,但与本机change
事件不同,您可以获得有关用户是否单击了某个按钮的信息。事件(如果用户没有点击建议,ui.item
为 null)。You can use the
select
event like @bfavaretto points out, but I think in this situation it's more convenient to use thechange
event:Example: http://jsfiddle.net/andrewwhitaker/3FX2n/
change
fires when the field is blurred, but unlike the nativechange
event, you get information about whether or not the user clicked an event (ui.item
is null if the user did not click a suggestion).当用户选择一个选项时,会触发“select”事件。您可以收听它并设置一个标志。
When a user selects an option, the 'select' event is fired. You can listen to it and set a flag.
jQueryUI 提供了一个
select
事件,您应该在中定义它自动完成选项(当您将自动完成功能应用于表单输入时)。例如(来自 docs):
您可以通过
访问所选项目ui.item
来自事件处理程序内部。jQueryUI provides a
select
event, you should define it in the autocomplete options (when you apply the autocomplete to your form input).For example (from the docs):
You can access the selected item via
ui.item
from inside the event handler.