【问题标题】:Disable and enable Jquery autocomplete禁用和启用 Jquery 自动完成
【发布时间】:2012-05-08 04:14:37
【问题描述】:

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 毫秒后进行搜索,而是使用 keyup 进行默认设置。我应该改变什么?

【问题讨论】:

  • 你为什么宁愿让它在keydown上工作?
  • @Andrew Whitaker 因为它更快

标签: jquery jquery-ui events autocomplete


【解决方案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)...
});

【讨论】:

  • 还是要测试一下,不过看起来不错(我觉得这样行)谢谢(:
【解决方案2】:
$( "#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
      });

【讨论】:

  • 谢谢,id 自动完成是什么意思?你是说输入法??什么是keyCode.UP/DOWN??
  • 这个例子是从 jquery 论坛发布的,关于用户试图让向上和向下箭头工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多