我开发了一个jsp web项目,用户必须从单选按钮中选择一个选项,然后使用javascript将用户选择的值发送到其他页面。
JavaScript代码:
function select() {
var val1 = document.getElementsByName("President");
var result1;
for (var i = 0; i < val1.length; i++) {
if (val1[i].checked) {
console.log(val1[i].checked)
result1 = val1[i].value;
alert(result1);
} else {
alert("president vote is missing");
return;
}
}
}
当用户没有选择一个选项时,javascript代码工作正常,它会转到其他地方并显示一条警告消息(“总统投票失踪”)。但是当用户从列表中选择一个选项然后如果条件工作正常并且之后条件也正在执行,我从未遇到过这种问题
答案 0 :(得分:2)
我可以看到你在for循环中做警报。可以是这样的场景:第一次迭代“if”被执行然后下一次迭代“else”被执行因为“val1 [1] .checked”是假的吗?
答案 1 :(得分:0)
除了问题解决之外,如果有人需要帮助,我会制作此代码!
<html>
<head>
<title>STACK OVERFLOW TESTS</title>
</head>
<body>
<input type = 'radio' name = 'President' value = 'Obama'>Obama</input>
<br>
<input type = 'radio' name = 'President' value = 'Bush'>Bush</input>
<br>
<input type = 'radio' name = 'President' value = 'Clinton'>Clinton</input>
<br>
<input type = 'button' id = 'button' onClick = 'showMyChoice()'> SEND </input>
<script>
function showMyChoice(){
var val1 = document.getElementsByName("President");
var result1;
var missingVote = false;
for(var i = 0; i < val1.length; i++){
if(val1[i].checked){ // Check for all the radio buttons if there is one checked.
console.log(val1[i].checked);
result1 = val1[i].value;
alert(result1);
missingVote = false;
break;
}
else{
missingVote = true;
continue;
}
}
if(missingVote){
alert('President vote is missing');
}
}
</script>
</body>
</html>