2013-04-10 71 views
0

我对JavaScript有点新。我有一个具有多种输入类型的html表单,但是具有相同名称的多种类型。在将表单中的数据插入数据库之前,我需要验证表单。我能够在没有JS验证的情况下更新并插入数据库,但由于处理具有相同名称的输入的复杂性,我无法使用JavaScript执行验证部分。 下面的形式:如何在javascript中验证多个相同类型的输入并使用相同的名称

<form name="confirmation" method="post" action="appointment.php" onsubmit="return check()"> 

     <label>Restaurant Name: </label> 
     <input name="r_name[]" type="text" value="<?php echo $row[0]?>"><br> 
     <label>Appointment Date: </label> 
     <input name="app_date[]" type="date" value="<?php echo $row[1]?>"><br> 
     Confirm:<select name="confirm[]"> 
      <option value=""></option> 
      <option value="yes">Yes</option> 
      <option value="no">No</option> 
     </select><br><br> 

    </form> 

这里是PHP代码来更新数据库:

<?php 
if(isset($_POST['submit'])){ 
    $names= $_POST['r_name']; 
    $dates=$_POST['app_date']; 
    $confirm=$_POST['confirm']; 
    //echo $count; 
    for($i=0;$i<$count;$i++){ 
    //echo "success"; 
     $value=$confirm[$i]; 
     if($value=="yes") 
      $value="y"; 
     else 
      $value="n"; 
     // echo $value; 
     $result= mysql_query("update appointment set confirm='".$value."' where rname='".$names[$i]."';"); 
    }      
}?> 

要插入/表单到数据库更新相同名称的数据,我不得不联想[ ]到他们各自的名字,因为这是简单的出路。但我有问题在验证部分在JavaScript中评估它。任何人都可以向我建议如何使用任何用于上述表单中使用的输入类型的名称的小代码片段。谢谢。

+1

这是所有的HTML吗?我没有看到多个具有相同'name'的输入元素。 – Steve 2013-04-10 22:02:16

+1

给几个元素赋予相同的“名称”是可以的,但不能给它们相同的“id”值。 – Pointy 2013-04-10 22:02:52

+0

@Steve我动态生成它们(上面的HTML块),所以你没有看到具有相同名称的输入元素。 – 2013-04-10 22:08:37

回答

0

如果name s为多个输入元素一样,你可以在元件上使用唯一id■如果要针对特定​​的元素,也可以使用class ES的目标一组相似的元素。

<form> 
    <input name="myInput[]" id="myInput_0" class="myInput" type="text" value=""> 
    <input name="myInput[]" id="myInput_1" class="myInput" type="text" value=""> 
    <input name="myInput[]" id="myInput_2" class="myInput" type="text" value=""> 
</form> 

现在您可以myInput[0]作为getElementById('myInput_0')或全部myInput[] S作为getElementByClassName('myInput')

+0

由于我动态生成的表单大小取决于从服务器端使用PHP的数据,这将是一个不明智的选择使用ID标记,因为我们不知道具体名称相同的项目数量将生成执行客户端的形式验证。因此,我确实认为这将是一个不好的选择。 – 2013-04-10 22:23:00

+0

那么,你只剩下'class'方法,并循环从getElementsByClassName返回的节点数组 – Steve 2013-04-10 22:25:51

相关问题