繁体   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