使用jqueryUi
autocomplete
我希望第一项仅在用户输入tab key
时自动关注。
我该如何执行这项任务?
使用指定的autoFocus
option
true
初始化自动填充功能不符合我的目的!
有什么想法吗?
这是我的代码。
请参阅评论了解更多详情。
element.autocomplete({
minLength: 3,
// the following option "autoFocus = true"
// make the first item focused when the user type the first 3 letters
// I would like the first item focused only when I type on TAB
autoFocus: false,
source: function (request, response) {
// some code
}
}).data('autocomplete')._renderItem = renderItem;
// the following piece of code works only when I type the first three letters,
// If I type four letters and then tab it does not work!
element.on('keyup', function (event) {
if (event.keyCode === 9) {
element.autocomplete( "option", "autoFocus", true );
}
});
答案 0 :(得分:2)
是的,autoFocus不会做你想要的。相反,你可以伪造用户在想要选择项目时通常必须做的按键。
element.keydown(function(e){
if( e.keyCode != $.ui.keyCode.TAB ) return; // only pay attention to tabs
e.keyCode = $.ui.keyCode.DOWN; // fake a down error press
$(this).trigger(e);
e.keyCode = $.ui.keyCode.ENTER; // fake select the item
$(this).trigger(e);
});