使用 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 unobtrusive 和 Asp.Net Mvc 验证动态生成的单选按钮组?