gpt4 book ai didi

javascript - 循环并验证多个 radio 输入

转载 作者:行者123 更新时间:2023-12-02 16:40:55 25 4
gpt4 key购买 nike

JS:

function validateForm() {
var radios = document.getElementsByName("Dquestion[1]");
var formValid = false;

var i = 0;
while (!formValid && i < radios.length) {
if (radios[i].checked) formValid = true;
i++;
}

if (!formValid) alert("Must check some option!");
return formValid;
}

PHP:

<form name="form1" action="#" onsubmit="return validateForm()" method="post"> 
First time visitor?:<br/>
<label for="s1">Yes</label>
<?php for($i=1; $i<=10; $i++){?><td><input type="radio" name="Dquestion[1]" value="<?=$i?>"> <?=$i?> </td><?php } ?>
<br/>
<label for="s2">No</label>
<?php for($i=1; $i<=10; $i++){?><td><input type="radio" name="Iquestion[1]" value="<?=$i?>"> <?=$i?> </td><?php } ?>
<br/>
<label for="s3">cool</label>
<?php for($i=1; $i<=10; $i++){?><td><input type="radio" name="Dquestion[2]" value="<?=$i?>"> <?=$i?> </td><?php } ?>
<br/>
<input type="submit" value="Submit"><br/>
</form>

我的目的是检查所有输入,如果没有,他们就无法提交表单。每个问题都有 10 个 radio 输入,表单有 25 个问题,因此我对每个名称使用 Dquestion['number']。我正在使用此代码进行测试,但无法检查 Dquestion[2] 。为什么?我如何循环回答所有 25 个问题?

我尝试了这段代码,但它不起作用:

var Dnames = ['Dquestion[1]','Dquestion[2]']

function validateForm() {

var radios = [];
var formValid = false;

for (var i = 1; i<= Dnames.length; i++){
var radios = document.getElementsByName(Dnames[i]);
var j = 0;
while(!formValid && j < radios.length){
if(radios[j].checked) formValid = true;
j++
}
}

if (!formValid) alert("Must check some option!");
return formValid;
}

最佳答案

var radios = document.getElementsByName('Dquestion[1]'); // you understand this part
var checked = Array.prototype.some.call(radios, function(radio){
return radio.checked;
});

假设我有一个数组:

var arr = [1,2,3,4,5,6];
arr.some(function(num){
return boolean // meaning return something that is true or false like "return num < 3
});
//when it loops through it will return that boolean each time
// it'll return 1 < 3: true, 2 < 3: true 3 < 3: false, 4 < 3: false, 5 < 3: false, 6 < 3: false
//the some function after it's done looping is checking if some are true which is true it returned 3 trues
//so checked = true

if(checked){
console.log('one is checked');
} else {
console.log('please check one');
};

关于javascript - 循环并验证多个 radio 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com