• 締切済み

JavaScriptで入力文字制限

こちらのページ {AllAbout:JavaScriptで入力文字制限!(入力チェック)} http://allabout.co.jp/internet/hpcreate/closeup/CU20050620A/index2.htm を参考に、入力内容をチェックしてくれるフォームを作成しようとしています。 しかし、私の環境(IE7)では、このページの例えばふりがな入力(ひらがな・カタカナのみ有効)で「123」と入力しEnterキーを押すとアラートが2度表示されてしまいます。これと同じ現象が私の作っているページでも発生しています。 フォーカスを失ったときにチェックをするというのは変えずに、Enterを押したときにアラートを1回しか表示させないようにするにはどうすれば良いのでしょうか。よろしくお願いします。

みんなの回答

  • tochansa
  • ベストアンサー率76% (23/30)
回答No.1

全部書くと長くなりそうなのでフリガナチェックのみ書いてみました。 以下と同じ様にenterとlostFocusを英語、年齢にも作ってやればいいんじゃないかなー。 変更箇所は、スクリプトの増加、onkeydownイベントの追加、onblurの変更、送信ボタンをsubmitからbuttonに変更、です <script type="text/javascript"> var enterF; enterF=0; /* ふりがなチェック */ function FuriganaCheck() { // 省略 } /* 全部チェック */ function AllCheck() { // 省略 } function enterFurigana(){ if( window.event.keyCode == 13 ){ enterF=1; FuriganaCheck(); enterF=0; } } function lostFocusFurigana(){ if(enterF==0){ FuriganaCheck(); } } </script> ふりがな <input type="text" name="FuriganaText" size="30" onkeydown="enterFurigana();" onblur="lostFocusFurigana();"><br/> <input type="button" value="送信" onClick="return AllCheck();">