• 締切済み

フォームの入力欄の未記入チェック方法

フォーム内のテキストボックスやチェックボックスでひとつでも未記入項目があると「未記入項目があります」のダイアログボックスを表示させて元の画面にもどりたいのですが if(document.フォーム名.部品名.value == "") { alert( "名前を記入してください" ); document.フォーム名.部品名.focus(); return false; } } 上のソースでは部品の数だけ同じ処理を書かないといけないのです。この中に全ての部品をまとめてひとつでも空欄があればエラー表示させる書き方はないでしょうか?

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

テキストフォームだけでいいのでしょうか? チェックボックスやラジオボタン、リストボックス があると、それなりの処理をいれなくてはいけません。 とりあえずということであればこんな感じです。 formをオブジェクトで関数にわたし、中身を 確認してヒットしたら処理をとめる という流れは質問のフローとおなじです <script language="javascript"> function checkFunc(f){ for (var i =0;i<f.length;i++){ if(f[i].tagName=="INPUT" && f[i].value==""){ alert(f[i].name+"を入力してください") f[i].focus(); return false; } } } </script> <form onSubmit="return checkFunc(this)" action="hoge.htm"> aaa:<input type="text" value="" name="aaa"><br> bbb:<input type="text" value="" name="bbb"><br> ccc:<input type="text" value="" name="ccc"><br> <input type="submit" value="Go!"><br> </form>

DINO-PIE
質問者

お礼

これ使えますね。ありがとうございます。