この質問はjquery disable form submit on enterによって回答されているはずですが、その質問に対する答えは私にはうまくいかないようです - 入力テキストフィールドで Enter キーを押すと、次の 3 つのことが起こります。
- フィールドの変更イベントが発生します。
- フォームが送信されます。
- 最後に、前述の回答で説明されている keyup イベント ハンドラーが起動されます。
これで、keyup を keydown に置き換えることができます。その後、submit は実際にはトリガーされません。しかし、フィールドの変更イベントもそうではありません。
インターネット上には多くのリンクがありますが、ほとんどは複雑なシナリオについて話しています。
私が望むのは、常に入力時に送信を無効にすることだけですが、それ以上は何もありません。
私はjquery 1.8.0を使用しています
ありがとう。
編集
明確にしたい。ユーザーが送信入力ボタンをクリックしたときに送信が発生するようにします。入力時に発生したくないだけです。
<form id="invoiceForm">
...
<input type="submit"/>
</form>
EDIT2
http://jsfiddle.net/mark69_fnd/akZG4/ - 送信がトリガーされると、メッセージが表示されます
{"error": "Please use POST request"}
入力時にこのメッセージを表示したくありません。送信が実際にクリックされた場合のみ。
EDIT3
実際に空白のページを送信し、送信時に警告するようにフィドルを変更しました。
EDIT4
テキスト入力フィールド内で Enter キーを押したときにフォームを送信するというデフォルトのアクションを防止したいと考えています。しかし、テキスト入力の自然な動作、つまり変更イベントのトリガーを維持したいと考えています。