[hello world 動かない ][検索]

プログラミング関連で自分が調べた事をメモる

form enter submit させない

formでテキスト入力時のエンター押下でsubmitさせないようにする


<input type="submit"> から
<button type="button"></button> に変更してボタン押下時にjavascriptでsubmitしてやる

<form>
  <input type="text">
  <input type="submit">
</form>

<form id="form-nantoka">
  <input type="text">
  <button id="form-submit" type="button">submit</button>
</form>
$('#form-submit').on('cick', function() {
  $('#form-nantoka').submit();
});

これでOKかと思っていたがエンターキー押下でsubmitするのはいくつか条件があるらしい
自分が確認したのは以下の2点

  1. フォームにsubmitボタンがある
  2. テキスト形式の入力フォームが一つのみのフォーム

2. の場合が解決できていなかったので、もう少し改良

$('#form-nantoka').on('submit', function() {
  return false;
});

$('#form-submit').on('cick', function() {
  $('#form-nantoka').off('submit');
  $('#form-nantoka').submit();
});


他にもtext入力時のkeypressイベントでエンターキー押下時イベントキャンセルする等のやり方がいくつかあるらしい