フォームの半角入力チェック

Javascriptの備忘録というか、スニペットで使いまわすためのメモです。

フォームの入力で半角限定としたいときのチェック。
送信時(onsubmit)でのチェックでもいいけど、ひとまず今回は入力値が与えられた時点でチェックしちゃうという手順です。

Javascript

<script>
<!-- 
function Ck_hankaku(no_zenkaku){
	var flag=0;
	if (no_zenkaku.value.match(/[^0-9a-zA-Z]+/)){
		flag=1;
	}
	if (flag==1){
		alert("半角英数字で登録してください。");
		no_zenkaku.value="";//入力値をそのまま残してもいい場合はこの行削除OK
		no_zenkaku.blur();//フォーカスをいったん外してから
		no_zenkaku.focus();
	}else{
		return true;
	}
}
 --></script>
<!-- 半角入力チェック -->

HTML

  <tr>
    <td class="">半角オンリー</td>
    <td>
    	<input type="text" id="data" onChange="return Ck_hankaku(this)">
    </td>
  </tr>

アラート表示後に元のinputへフォーカスさせようとしたらなぜか思ったように動いてくれなかったけど、いったんblur()でフォーカス外しておいてからもう一度戻したらちゃんとフォーカスしてくれたという。