入力フォームでEnterキー押下で送信を行わない

入力フォームを作成していて、どうしてもキーボードのEnterキーを押して間違って送信することがありました。

そこで、Enterキーでの入力で送信をしないようにJavascriptで制御します。

コードは以下のとおりです。

function NoEnter(evt){
  evt = (evt) ? evt : event;
                var charCode=(evt.charCode) ? evt.charCode :
                                   ((evt.which) ? evt.which : evt.keyCode);
  if ( Number(charCode) == 13 || Number(charCode) == 3) {
  return false;
  } else {
  return true;
  }
}

function NoSendEnter(formName) {
  var elements = document.forms[formName].elements;
  for (var j=0; j < elements.length; j++) {
  var e = elements[j];
  if (e.type == “text”){
  e.onkeypress=NoEnter;
  }
  }
}

実際のフォームには次のように埋め込みます。

<form name=”form1″>
~入力項目~
<input type=”text” name=”text1″>
</form>
<script>
NoSendEnter(‘form1’);
</script>