ASP.NETにフォームが組み込まれています。最初のコントロールを使用すると、ユーザーはオートコンプリートリストから人を選択できます。ユーザーがEnterキーを押すと、ページが更新され、この最初のコントロールで取得した情報が複製されます。ページの更新からEnterキーの機能を削除しようとしています。このコードはすべてChromeとIE7/8/9で機能します(6については気にしないでください)。私が必要としているのは、Firefox以外のサポートしているすべてのブラウザで機能するためにfalseを返すことだけです。.click()は、キーに少し使いやすさを追加するためのボーナスです(これにより、コントロールがアクティブになり、チェックボックスをオンまたはオフにするなど)。
これはFirefox12では機能しません。クリックは発生しますが(必要なときにコードに到達したことを証明します)、ページは毎回更新されます。
focusNextInputfield()は、同様の質問からの提案の1つであり、私が望むことは何もしませんでした。意図したとおりに動作した可能性がありますが、ページが更新されたためわかりません。
私は自分自身でさらに別の同様の質問からpreventDefault()とstopPropagation()を見つけましたが、FFでは何もしませんでした。
私はそれの一体のために真を返すことさえ試みました。
$(document).keydown(function (event) {
//handles what happens when the user hits enter
if (document.activeElement.nodeName !== 'TEXTAREA') {
if (event.keyCode === 13 || event.which === 13) {
$(document.activeElement).click();
// $(document.activeElement).focusNextInputField();
event.preventDefault();
event.stopPropagation();
return false;
}
}
});
何らかの理由でFireFox12に影響を与えない提案やニュースを探していますか?そして、私はコードに到達し、すべてがエラーなしで正しく実行され、余分なコードがすべてある場合でも、前述のようにChromeとIE7/8/9で正しく実行されることを知っています。
そして、以前の反復を通じて、送信ボタンを強制的にクリックしようとしましたが、それでも更新されて検証され、全体的にユーザーエクスペリエンスが悪くなりました。