0

私は次のコードを持っています-http: //jsfiddle.net/vcvsb/1/-per

$(document).ready(function(e) {
    $("input#autocomplete").autocomplete({
        source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
    });
    jQuery("#autocomplete").keypress(function (e) {
        if (e.keyCode == 13) {
          $('#buttontest').trigger('click');
          alert('crap, clicked');  
        }
    });
  });

ユーザーが矢印キーで下に移動できるように設定しようとしています。Enterキーを押してから入力を続けます。私が直面している問題は、オートコンプリート応答を取得した後、ユーザーがEnterを選択するとすぐに、ボタンのクリックがトリガーされることです。

次のように設定するにはどうすればよいですか。

  1. ユーザーは矢印キーを使用して選択範囲に移動し、Enterキーを押すことができます
  2. Enterキーを押した後、ユーザーは入力を続けることができます
  3. ユーザーがもう一度Enterキーを押すと、クリックがトリガーされます

4

2 に答える 2

0

ハックのようなものですが、http://jsfiddle.net/amantur/hhUdV/で動作します。ENTERがクリックされた回数を数える必要があります。2回目はトリガーボタンクリックです。

于 2011-09-18T14:39:32.733 に答える
0

最善の解決策は、入力フィールドのいずれかにフォーカスがあるかどうかを確認することです。それ以外の場合は、ENTERを無視します。jQuery> = 1.6を使用すると、次のことができます。

if(e.keyCode == 13) {
    if($("#input").is(":focus")) {

      // then click the button
      $("#button").click();
    }

}

これにより、必要なもの以外のENTERイベントは無視されます;)

于 2012-05-06T21:21:25.660 に答える