[javascript] エンターキー押下時にフォーム誤送信を防止するスクリプト

下記スクリプトで、エンターキーによるフォーム送信を無効にできる。

たまに使うこともあると思うので一応メモ。

layoutに追記※cakephpの場合

<?php echo $javascript->link('enter_block');?>

enter_block.js

	function BlockEnterEvent() {
		for(i = 0;i < 3;i++){
			if (document.forms[i] != null) {
				var elements = document.forms[i].elements;
				for (var j=0; j < elements.length; j++) {
					var e = elements[j];
					if (e.type == "text" || e.type == "file"){
						e.onkeypress=BlockEnter;
					}
				}
			}
		}
	}
	function BlockEnter(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;
		}
	}
	BlockEnterEvent();

Leave a Response