Jquery自动填充功能(LINK)有一个选项可以将其关闭,如下所示:
$(input).autocomplete({ disabled: true });
我希望它被关闭,因为它的默认设置是响应密钥。我更喜欢在keydown上运行它。所以我把它关掉了,我写了一个像这样的事件keydown的函数:
timer = 0;
function func (){
var val = $(input).val();
$(input).autocomplete('search', val);
}
$(input).live('keydown', function(){
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(func, 50000);
$(input).autocomplete( "enable" );
});
它不起作用...意味着它在50000 ms后不进行搜索,而是使用keyup进行默认设置。我应该改变什么?
答案 0 :(得分:1)
添加一个keyup事件并停止事件传播。
添加keydown事件并将其命名为:$("input").autocomplete('search', 'demo-value');
$(input).autocomplete().keyup(function(event) {
event.stopPropagation();
}).keydown(function() {
$(this).autocomplete('search', $(input).val()); //this or $(input)...
});
答案 1 :(得分:0)
$( "#autocomplete" )
.keydown( function( event ) {
var isOpen = $( this ).autocomplete( "widget" ).is( ":visible" );
var keyCode = $.ui.keyCode;
if ( !isOpen && ( event.keyCode == keyCode.UP || event.keyCode == keyCode.DOWN ) ) {
event.stopImmediatePropagation();
}
})
.autocomplete({
source: someSource
});