0

複数のテキスト入力とチェックボックス (チェックボックスは 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;
}   
}

御時間ありがとうございます!

4

1 に答える 1