簡體   English   中英

PHP中單選按鈕的客戶端驗證

[英]Client-side validation for radio buttons in php

我正在嘗試創建帶有多個單選按鈕的表單。 我正在使用for循環生成單選按鈕,如下所示:

<form name="myForm" method="POST" id="myForm" action="result.php" onsubmit="">
<?php for ($i = 1; $i <= $row = mysqli_fetch_array($result); $i++)
{ ?>
    <input type="radio" name="opt<?php echo $i; ?>" id="opt<?php echo $i; ?>" value="A"/><br/>
            <input type="radio" name="opt<?php echo $i; ?>" id="opt<?php echo $i; ?>" value="B"/> <?php } ?>

我要確保為每個單選按鈕組選擇1個答案。 我一直在不斷搜索,並提出了以下代碼:

</script><script type="text/javascript">
function validate() {
var x = "<?php echo $j;?>";

var formValid = false;
for (var i = 1; i <= x; i++)
{
    var y = document.getElementsByName("opt"+i);        
    var j = 0;
    while (!formValid && j < y.length){
        if (y[j].checked) {
            formValid = true;
            j++;
            alert("test");
        }
        break;
    }   
}

if (!formValid) { alert("all fields required");
    return false;
}
else
{
    var form = document.getElementById("myForm");
    form.submit();
}</script>

我的問題是,即使所有單選按鈕都已被打勾,所有必填字段仍會彈出,並且表單將提交。 我在這里想念什么嗎? 請幫忙。 我已經堅持了好幾天。

一旦找到一次已選中的字段,您就永遠不會檢查其余字段,前提是一切都很好。

要逐個檢查領域,當你看到一個無效想逃。

var formValid = true;
for (var i = 1; i <= x; i++)
{
    var fieldValid = false;
    var y = document.getElementsByName("opt"+i);        
    var j = 0;
    while (!fieldValid && j < y.length){
        if (y[j].checked) {
            fieldValid = true;
            break;
        }
        j++;
    }   

    if (! fieldValid)
    {
      formValid = false;
      break;
    }
}

暫無
暫無

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

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