簡體   English   中英

動態單選按鈕組驗證

[英]Dynamical radio button group validation

示例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" />

當我選擇單選按鈕並提交時,系統顯示一條錯誤消息。
當我不選擇單選按鈕並提交時,系統還會顯示一條錯誤消息。

誰能幫我嗎?

您的行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");

首先給表單命名,例如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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM