[英]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.