複数のテキスト入力とチェックボックス (チェックボックスは DB から取得) を含むフォームがあるので、それらを個別に検証する方法は知っていますが、一緒に検証する必要があります。なぜそうなるのかはわかっていますが、正しい書き方がわかりません... ¿ コードは次のとおりです。
<form action="sendreq.php" name="contact" onsubmit="return valida_frm(this)" method="post">
<label>Name</label>
<input name="name" type="text" />
<label>Email</label>
<input name="email" type="text"/><!-- And Severeal inputs then the checkboxes-->
<?php $list3 = mysql_query("SELECT * FROM products ORDER BY id ASC LIMIT 20");
while($row = mysql_fetch_object($list3)){ ?>
<input id="product" name="product[]" class="label" type="checkbox" value="<?php echo $row->name?>"><label class="label"><?php echo $row->name?></label>
<?php }?>
検証が正常に機能しない理由は明らかです。アラートの戻りを記述して統一する正しい方法が必要なだけです。
function valida_frm(form){
var alerta="Ooops:\n";
if (form.name.value == "") {alerta+="Name.\n";}
if (form.email.value == "") {alerta+="Email.\n";}
for(var i = 0; i < form.product.length; i++){
if(form.product[i].checked)return true;}
alert('Oooops');
return false;
if (alerta!="Error:\n"){
alert(alerta);
return false;
}else{
return true;
}
}
御時間ありがとうございます!