「デフォルトボタン」が望ましくなく起動するという古くからの問題の解決策が必要です。つまり、テキスト ボックスで Enter キーを押しましたが、起動したいボタンではない送信ボタンがフォームにありました (または、フォームをまったく起動したくない場合)。
次の「解決策」について疑問に思っています。少しハックですが、私が知る限り信頼できるはずです。
フォーム内で最初に目に見えないボタンがあります。次に、すぐに無効にするjquery。フォームで Enter キーを押すと、このボタンは「デフォルト ボタン」としてカウントされ、トリガーされますが、「false を返す」イベント ハンドラのために何もしません。
私が以前に見たソリューションは、keydown イベント ハンドラーや、一見複雑に見える/すべてのブラウザーでテストするのが難しいものに依存していました。
私の解決策 (これまでに見たことはありませんが、おそらくユニークではありません) ははるかに単純に見え、かなり信頼できると思います。サーバーがフォーム データでこのボタンを受信するため、javascript が無効になっていて誰かが Enter キーを押したかどうかもわかります。
<form action="/store/checkout" method="post">
<input id="btnFakeSubmit" name="FakeSubmit" src="/images/pixel.gif"
style="width:1px; height:1px; position:absolute;" type="image" />
<script>
$('#btnFakeSubmit').click(function() {
return false;
});
</script>
このソリューションに関するアドバイス - すべてのブラウザでボタンを非表示にする最良の方法を含みます。