【问题标题】:Validate dynamically named radio buttons using javascript使用 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 之前验证同一页面中的表单混乱

标签: javascript php forms validation radio-button


【解决方案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 扩展了它。感谢您的回答谢谢!
猜你喜欢
  • 2011-01-20
  • 2013-01-24
  • 1970-01-01
  • 2012-08-19
  • 2015-05-31
  • 2014-02-26
  • 1970-01-01
  • 2022-11-19
相关资源
最近更新 更多