jQuery UI 自动完成:禁用选项卡完成?
如何禁用使用 Tab 键来选择当前/突出显示的项目?我只想 Enter 来填充它。
How can I disable the use of the Tab key to select the current/highlighted item? I only want Enter to fill it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Ryan 将取消操作放入
按键中的示例
事件对我不起作用,但我们可以将其放在自动完成的
select
选项中:Ryan's example of putting the cancellation in the
keypress
event didn't work for me, but we can put it in theselect
option of autocomplete:当您在 jquery-ui 中使用 .autocomplete() 修饰符时,它将输入文本框的按键处理程序设置为如下。 self.menu.select 将文本框设置为自动完成列表中当前突出显示的值,
因此您需要做的是确保不会调用此处理程序。我可以通过向按键添加一个处理程序来完成此操作,如果按键是 TAB,则该处理程序会从处理程序返回 false。
您可以在此处查看结果。
When you use the .autocomplete() modifier in jquery-ui, it sets the keypress handler for your input textbox to as follows. The self.menu.select sets the text box to the currently highlighted value in the auto-complete list
So what you need to do is ensure that this handler does not get called. I was able to do this by adding a handler to the keypress that returns false from the handler if the keypress is TAB.
You can see the result here.
Tab 并不是真正选择当前项目,而是将光标移动到下一个可选项卡项目。因此,您需要做的是禁用自动完成选项卡:
使用 javascript 锁定选项卡键?
这样的东西对我有用,你可能需要进一步修改它。
http://jsfiddle.net/Uubn6/
基本上,您在将 keydown 事件传递给自动完成按键处理程序。当你捕获它时,你可以做任何你想做的事(通过或不通过)。
Tab isn't really selecting the current item, it is moving the cursor to the next tab-able item. So what you need to do is disable tab for the autocomplete:
Lock tab key with javascript?
Something like this is working for me, you may need to modify it some more.
http://jsfiddle.net/Uubn6/
Basically, you capture the keydown event prior to passing it to the autocomplete keydown handler. When you capture it, you can do whatever you want (pass it or not).