• ベストアンサー

入力文字数のチェック

CGIを利用して、入力されたコードからある項目を検索させるページを作っています。 入力させる文字は数字8桁に制限したいのですが、下記の内容ですと、8桁以下の入力でエラーを出すことはできますがそのままCGIの処理に流れていってしまうのです。 これを、8桁以下だったらエラーを出してそこでストップさせるようにしたいのです。 かれこれ3日悩んでいます。。。よろしくお願いいたします。 ========================================================= <HTML> <HEAD> <TITLE>データベース</TITLE> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 8; //入力許容最小文字数 function tareachk(frm){ var tmp = frm.HANDLE.value; var len = tmp.length; if(len < MAXLENGTH){alert("現在のコードの"+MAXLENGTH+"桁を入力してください");} else {frm.submit();} } // --> </script> </HEAD> <BODY bgcolor="#ffffff"> <img SRC="logon_l2.gif" height=42 width=685> <br> <form method=post action="/cgi-bin/search.cgi"> コード <input type=text name="HANDLE" size="10"> <input type=submit value="検索" onClick="tareachk(this.form);"> </form> </BODY> </HTML>

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんなんでどうでしょう? (1)「検索」ボタンの「onClick=~」をなくして、formに「onSubmit=~」を記述。 (2)エラーの場合、falseを返してsubmitを無効化する <HTML> <HEAD> <TITLE>データベース</TITLE> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 8; //入力許容最小文字数 function tareachk(frm){ var tmp = frm.HANDLE.value; var len = tmp.length; if(len < MAXLENGTH){alert("現在のコードの"+MAXLENGTH+"桁を入力してください"); return false; }else{ return true; } } // --> </script> </HEAD> <BODY bgcolor="#ffffff"> <img SRC="logon_l2.gif" height=42 width=685> <br> <form method=post action="/cgi-bin/search.cgi" onSubmit="return tareachk(this);"> コード <input type=text name="HANDLE" size="10"> <input type=submit value="検索"> </form> </BODY> </HTML>

shinashina
質問者

お礼

お返事が遅くなりまして申し訳ありません。 できました!!! 完璧です。。。 本当に助かりました、ありがとうございます。

その他の回答 (1)

  • stanaka
  • ベストアンサー率44% (13/29)
回答No.1

<input type="submit"  のところを, <input type="button"  に変えてみたらどうだろうか.しかしこれだと,フォームの決定・送信にリターンキーが使えなくなる.いちいちボタンをクリックせにゃならん.  その辺はデフォルト動作とかを指定できるのかな?.

shinashina
質問者

お礼

お返事が遅くなりまして申し訳ありません。 おっしゃるとおり、リターンキーで続行されてしまうもので。。。 ということで、上の方の例を参考にさせていただきました。 ありがとうございました!

関連するQ&A