3

Jqueryオートコンプリート(LINK)には、オフにするオプションがあります。これは次のようになります。

$(input).autocomplete({ disabled: true });

デフォルト設定はキーアップ時に応答するため、オフにしたいと思います。私はむしろそれをキーダウンで機能させます。そこで、それをオフにして、次のようなイベントキーダウンを使用して関数を作成しました。

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ミリ秒後に検索を実行しませんが、代わりにキーアップを使用してデフォルト設定を実行します。何を変更すればよいですか?

4

2 に答える 2

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)...
});
于 2012-05-07T20:09:22.447 に答える
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
      });
于 2012-05-07T20:01:25.463 に答える