javascript单选按钮验证,在chrome中有效,在IE中无效
我有这个代码来检查在用户提交表单之前,是否已经从每组单选按钮中选择了一个。它在chrome中运行良好,但在IE中,它总是要求用户回答所有问题,即使他们已经回答了。如何更改此选项以在所有浏览器中正常工作javascript单选按钮验证,在chrome中有效,在IE中无效,javascript,html,google-chrome,Javascript,Html,Google Chrome,我有这个代码来检查在用户提交表单之前,是否已经从每组单选按钮中选择了一个。它在chrome中运行良好,但在IE中,它总是要求用户回答所有问题,即使他们已经回答了。如何更改此选项以在所有浏览器中正常工作 <script> function validate(){ if (checkRadio("Radio1") && checkRadio("Radio2") && checkRadio("Radio3")){ return true; }el
<script>
function validate(){
if (checkRadio("Radio1") && checkRadio("Radio2") && checkRadio("Radio3")){
return true;
}else{
alert("Please answer all questions!");
return false;
}
}
function checkRadio(name){
var radio = document.forms.myForm[name];
for (var option in radio){
if(radio[option].checked){
return true;
}
}
return false;
}
</script>
函数验证(){
if(检查收音机(“收音机1”)&检查收音机(“收音机2”)&检查收音机(“收音机3”)){
返回true;
}否则{
提醒(“请回答所有问题!”);
返回false;
}
}
功能检查收音机(名称){
var radio=document.forms.myForm[name];
用于(收音机中的var选项){
如果(单选[选项].选中){
返回true;
}
}
返回false;
}
问题出在checkRadio()
——您不应该使用快速/增强的来执行带有数组的
循环
调用for(单选中的var选项)
每次只返回单选按钮组的名称(例如,“Radio1”)
您必须对循环使用长格式:
功能检查收音机(名称){
var radio=document.forms.myForm[name];
对于(var i=0;i
谢谢,已经整理好了!
function checkRadio(name) {
var radio = document.forms.myForm[name];
for (var i = 0; i < radio.length; i++) {
if (radio[i].checked) {
return true;
}
}
return false;
}