使用 javascript 验证动态命名的单选按钮

Posted

技术标签:

【中文标题】使用 javascript 验证动态命名的单选按钮【英文标题】:Validate dynamically named radio buttons using javascript 【发布时间】:2017-06-27 16:38:34 【问题描述】:

我一直在浏览各种单选按钮验证示例并掌握了这个概念,但似乎没有任何示例适合我的情况。我查询了包含 4 个选项的数据库,并且为每个选项生成了一个关联的单选按钮,如下所示:

<?php foreach($options as $option) ?>

<p><input type="radio" name="ID<?php echo $row['id']; ?>" value="<?php echo $option; ?>"><?php echo $option; ?></p>

<?php  ?>

所以这基本上每行生成 4 个从数据库调用的单选按钮。这在源代码中显示为:

<form method="POST" action="Result.php">
    <p>1.  Question </p>
        <p><input type="radio" name="ID1" value="answer1">answer1</p>
        <p><input type="radio" name="ID1" value="answer2">answer2</p>
        <p><input type="radio" name="ID1" value="answer3">answer3</p>
        <p><input type="radio" name="ID1" value="answer4">answer4</p>
    <p>2.  Question 2</p>   
        <p><input type="radio" name="ID2" value="answer1">answer1</p>
        <p><input type="radio" name="ID2" value="answer2">answer2</p>
        <p><input type="radio" name="ID2" value="answer3">answer3</p>
        <p><input type="radio" name="ID2" value="answer4">answer4</p> 
    <input type="submit" name="submit" value="Submit!">          
</form>

等等等等

这些单选按钮的名称部分由 php 生成,我如何使用带有相关警报的 javascript 来检查每个问题中的 1 个单选按钮在提交填入问题的表单之前是否已检查?

或者我什至可以如何使用 php ISSET 来实现这一点?

【问题讨论】:

在您的result.php 中,如果选中了第一个问题中的这些单选按钮之一,isset($_POST['ID1']) 将返回 true。然后$_POST['ID1'] 将保存 answer1、answer2 等的值。 Eddi,谢谢您的回复,我知道这会在 results.php 中发生,但我的问题是如何在将表单提交到 results.php 之前验证同一页面中的表单混乱 【参考方案1】:

仅使用 JavaScript 来验证单选组中的单选按钮是否被选中:

function radiogroupSelected(name)
    var inputArr = document.getElementsByName(name);
    for(var i = 0; i < inputArr.length; i++)
        if(inputArr[0].checked)
            return true;
        
    

    return false;

现在您可以像radiogroupSelected('ID1') 一样调用此函数来确定是否选择了其中一个输入。

【讨论】:

感谢您的帮助,我使用了这个概念并为每个 ID 扩展了它。感谢您的回答谢谢!

以上是关于使用 javascript 验证动态命名的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript 中动态创建适用于所有浏览器的单选按钮?

验证动态单选按钮jQuery

如何使用 jquery unobtrusive 和 Asp.Net Mvc 验证动态生成的单选按钮组?

如何使用jQuery unobtrusive和Asp.Net Mvc验证动态生成的单选按钮组?

单选按钮验证(动态名称)

如何验证magento中的单选按钮?