2012-05-07 9 views
3

は、jQueryのオートコンプリート(LINK)はこのようになりますこれは、それをオフにするオプションがあります。デフォルト設定はからkeyupに対応することであるためを無効とjQueryのオートコンプリートを有効に

$(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

なぜあなたはむしろそれがkeydown' '上で動作していますか? –

+0

@Andrew Whitakerの方が速いから – Youss

答えて

1

イベントの伝播を追加して停止します。

はkeydownイベントイベントを追加し、このようにそれを呼び出す:$("input").autocomplete('search', 'demo-value');

$(input).autocomplete().keyup(function(event) { 
    event.stopPropagation(); 
}).keydown(function() { 
$(this).autocomplete('search', $(input).val()); //this or $(input)... 
}); 
+0

それでもテストしなければならないが、それは良いようだ(私はこれが動作すると思います)ありがとう(: – Youss

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 
     }); 
+0

ありがとう、あなたはidオートコンプリートでどういう意味ですか?あなたは入力を意味しますか? keyCode.UP/DOWNとは何ですか? – Youss

+0

この例は、上下矢印を操作しようとしているユーザーに関して、jqueryフォーラムから投稿されています。 – lucuma