1. ホーム
  2. ジャバスクリプト

[解決済み】jqueryで入力時のフォーム送信を無効にする

2022-04-06 19:22:28

質問

私のページには以下のようなjavascriptがありますが、動作していないようです。

$('form').bind("keypress", function(e) {
  if (e.keyCode == 13) {               
    e.preventDefault();
    return false;
  }
});

入力時にフォームを送信しないようにするか、いっそのことajaxのフォーム送信を呼び出すようにしたいのですが。 どちらの解決策でも構いませんが、私が上に含めているコードはフォームの送信を防いでいません。

解決方法は?

もし keyCode がキャッチされていない場合は which :

$('#formid').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) { 
    e.preventDefault();
    return false;
  }
});

EDIT: 見逃しました。 keyup ではなく keypress

EDIT 2: Firefoxのいくつかの新しいバージョンでは、フォーム送信を防止できないので、keypressイベントもフォームに追加した方が安全です。また、イベントをフォームの "name" にバインドするだけではうまくいかず、フォームの id にのみバインドするようにしました(今は?そのため、コード例を適切に変更することで、この点をより明確にしました。

編集 3: 変更点 bind() から on()