プロが教えるわが家の防犯対策術!

メールフォームで必須項目を入力しないと送信できないようにするにはどうすればいいでしょうか?
現在は以下のとおりに書いてありますが、必須項目に書いてなくても送信できてしまいます。

<form method="post" action="CGI">
<h3>お問い合わせフォーム</h3>
<p>*は必須項目です。</p>
<table>
<tbody>
<tr>
<th>お問い合わせ内容*</th>
<td><textarea name="お問い合わせ内容" class="l" cols="40" rows="12"></textarea></td>
</tr>
<tr>
<th>お名前(漢字)*</th>
<td><input type="text" name="お名前(漢字)" class="m"></td>
</tr>
<tr>
<th>お名前(フリガナ)*</th>
<td><input type="text" name="お名前(フリガナ)" class="m"></td>
</tr>
<tr>
<th>E-Mail*</th>
<td><input type="text" name="E-mail" class="l"></td>
</tr>
<tr>
<th>電話番号(半角)*</th>
<td><input type="text" name="電話番号" class="l"></td>
</tr>
</tbody>
</table>
<input type="submit" value="  送信  " class="button"></form>


また必須項目が未入力のときにエラーメッセージ(「お名前が未入力です。」など)を出したいのですがどのようにすればいいですか?

A 回答 (1件)

まずjavascriptでチェックします。


すべて一旦送信してエラーを返すより良いと思います。

<script type="text/javascript">
function inchk(f){var ele="";
for(i=0;i<f.elements.length-1;i++){
if(f.elements[i].value=="") ele+=f.elements[i].name+"が未記入です\n";
}
if(ele){alert(ele);return false;}
}
</script>

<form method="post" action="CGI" onsubmit="return inchk(this)">

ただし、ユーザのブラウザが javascript OFF ですとこれは効きませんから、スクリプトでもチェックが必要ですけどね。
スクリプトは受信データを変数に格納しているところでチェックして確認ページにプリントします。
ここで説明するより、いろいろサンプルを見たほうがいいです。

参考URL:http://webmastertool.jp/
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございました。

お礼日時:2011/10/27 01:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!