0

私の目は壊れているので、この質問はキーボードイベントに固有のものです。keypressイベントとクリックイベント

私はこのように、ボタンのクリックイベントハンドラを定義する場合:私は、私はほとんどのWebアプリケーションは、HTMLを実行するためにクリックイベントを使用すると思います(マウスを使用することはできませんので

$("#button").on("click", function() { 
    alert("clicked"); 
}); 

要素)、私はこのイベントをテストし、ボタンを押してEnterを押しました。イベントは正常に終了しました。それ以来、私はenterキーを押すとhtml要素にclickイベントをシミュレートすると信じてきました。私は送信ボタンを何度も実行していたので、そうでないと信じる理由はありません。

今、私がアクセスしたときに値を移入する必要のあるテキストボックスを作成しています。だから私はこれをした:

$("#text").on("click", function() { 
    alert("clicked"); 
}); 

しかし、それを入力しても、値は表示されません。しかし、他の人がマウスを使って要素をクリックすると、イベントは正常に発生します。私はjqueryの-UIのオートコンプリートを使用しています

:ここ

は、私が上で働いているコードです。私は、ユーザーがテキストボックスの中に入ると、テキストボックスにデータが入るようにしたいと思います。私は中に入るするにはEnterキーを押します...

$("#tags").autocomplete({ 
    source: names, 
    minLength: 0, 
    select: function(event, ui) { 
     var index = names.indexOf($(this).prop("value")); 
     $(this).val(""); 
     $("#selected").append("<li>"+names[index]+ 
     "<input type='hidden' id='id' value='"+ids[index]+"'/>"+ 
     "<a href=''>remove</a></li>"); 
     ids.splice(index, 1); 
     names.splice(index, 1); 
     return false; 
    } 
}).on("click", function(event) { 
    $(this).autocomplete("search", $(this).val()); 
}); 

が本当に緊急の間に差がある入力とマウスがクリック?私は何をすべきか? 「入力」のKeyPressイベントとテストをキャッチ

+0

私は、これはボタンのようなクリック可能な要素に当てはまると考えていますが、テキストボックスではEnterは別の意味、つまりリターンを持っています。スペースバーは、クリックするための代替手段としても機能します。 – Mouser

+0

送信ボタンには「デフォルト」のステータスがあり、ユーザーがにヒットしたときに「クリック」されます。 「送信」ボタンを追加すると、期待通りに機能します。 – allnodcoms

答えて

1

は、これに対処するための最良の方法です。これがなくてもボタンがenterで実行される理由は、それらが 'submit'タイプであるためです。

+0

自分のコードの真の部分を含めるように私の質問を編集しました。私は、特定のユーザーのクリックイベントを正しく処理しましたか?キーボードに関しては、キー押下イベントをバインドしてEnterキーを確認するだけでいいですか? – morbidCode

+0

私はjqueryとあまりよくはありませんので、最初の部分を手では答えられませんが、2番目の部分までは、keypressをバインドしてチェックしても問題ありません – Orangesandlemons

1

基本的に、あなたがより多くの努力なしにこの方法をキーボードの選択肢を持っていないので、編集ボックスにonClickを発射するのは良いアイデアではありません。
私のような盲目である(私はあなたの質問からこれを想定していた)、あなたはおそらくスクリーンリーディングソフトウェアを使用しています。スクリーンリーダーでは、Enterは通常、マウスのクリックをシミュレートします。しかし、例えばJAWS for Windowsでは、Enterキーを押したときに何をすべきかを調整できるように、より柔軟な機能が追加されています。マウスクリックをシミュレートするか、Enterキーをシステムに送信します。
あなたのケースでは、onClickイベントを発生させるボタンを作っていました。

関連する問題