2013-11-30 5 views
0

образца JavaScript:Динамичного радио проверка кнопки группы

<script type="text/javascript"> 
function validateForm() { 
    var radiobutton = document.getElementsByName("co[]"); 
    for (var i = 0; i < radiobutton.length; i++) { 
     if (radiobutton[i].checked) { 
      return true; 
     } 
    } 

    alert("At least one radio button has not been selected"); 
    return false; 
} 

Пример PHP:

<form method="post" action="result.php" onSubmit="return validateForm();"> 
<?php 
    $_SESSION['two']=$_POST; 

    $query1 = mysql_query('SELECT * FROM option WHERE code IN("'.implode('","',$_POST['co']).'")'); 
    while($data1 = mysql_fetch_assoc($query1)) 
    {    
     echo $data1['name'];          
?>   
    <table> 
     <tr> 
      <td>Detail</td> 
      <td>Select</td> 
     </tr> 
    <?php      
     $query = mysql_query('SELECT * FROM detailoption WHERE code="'.$data1['code'].'"'); 
     while($data = mysql_fetch_assoc($query)) 
     {   
      echo "<tr>"; 
      echo "<td>".$data['detail']."</td>"; 
      echo "<td><input type='radio' value='".$data['detail']."' name='co[".$data['code']."]' /></td>"; 
      echo "</tr>";    
     }      
    ?> 
    </table> 
<?php 
    } 
?>    
<input type="submit" name="submit" value="Submit" /> 

при выборе кнопки радио и представить, система выводит сообщение об ошибке сообщение.
Когда я не выбираю радиокнопку и не отправляю, система также отображает сообщение об ошибке.

Может ли кто-нибудь помочь мне?

ответ

0

Ваша строка var radiobutton = document.getElementsByName("co[]"); всегда возвращает пустой массив, потому что у вас нет ввода с этим именем.

Вы должны хранить code информацию в value атрибутов ввода, и если вы хотите получить detail поле в результате, вы должны хранить detailoption_id в value атрибутов, потому что все ваши строки в таблице есть тот же код, но может быть не такой же деталью.

$query = mysql_query('SELECT * FROM detailoption WHERE code="'.$data1['code'].'"'); 
     while($data = mysql_fetch_assoc($query)) 
     {   
      echo "<tr>"; 
      echo "<td>".$data['detail']."</td>"; 
      echo "<td><input type='radio' value='".$data['code']."' name='co' /></td>"; 
      echo "</tr>";    
     } 

, а затем получить список входов с новым именем данного

var radiobutton = document.getElementsByName("co");

0

первым дать имя, чтобы сформировать -like MyForm и попробовать это. Надеюсь, он будет использован для вас.

function validateForm() { 

len = document.myform.co.length 

for (i = 0; i <len; i++) 
{ 
    if (document.myform.co[i].checked) 
    { 
    return true; 
    } 

    alert("At least one radio button has not been selected"); 
    return false; 
} 
Смежные вопросы