Javascript 多个单选按钮窗体、单个组、can';无法检索值

Javascript 多个单选按钮窗体、单个组、can';无法检索值,javascript,html,radio-button,Javascript,Html,Radio Button,我一直在网上搜寻这个问题的答案,但没有找到任何有用的答案。我正在一个网页上编写一个测验。我没有一个表单包含多个单选按钮组,而是多个表单,每个表单都有自己的单选按钮组 每次我运行代码从每个表单中获取值时,我只得到第一组值;此后,函数调用的第二次迭代表示表单字段的变量未定义 var one, two, three; //Declared variable one = getRadioValue(document.getElementById("ans1"), "a1"); // Assigned

我一直在网上搜寻这个问题的答案,但没有找到任何有用的答案。我正在一个网页上编写一个测验。我没有一个表单包含多个单选按钮组,而是多个表单,每个表单都有自己的单选按钮组

每次我运行代码从每个表单中获取值时,我只得到第一组值;此后,函数调用的第二次迭代表示表单字段的变量未定义

var one, two, three; //Declared variable
 one = getRadioValue(document.getElementById("ans1"), "a1"); // Assigned to one
 alert(one);
//Assigned to one again but not two
     one = getRadioValue(document.getElementById("ans2"), "a2");
     alert(two); // alerting two but two in unassinged
   // Assigned to one again ,but alerting three
     one = getRadioValue(document.getElementById("ans3"), "a3");
     alert(three); //three is unassigned

document.getElementById("submitQuiz").onclick =function(){
 submit_quiz();
}

function submit_quiz(){
 var one, two, three;
 one = getRadioValue("a1");
 alert(one);
 two = getRadioValue("a2");
 alert(two);
 three = getRadioValue("a3");
 alert(three);
}



function getRadioValue(name){
var val =""
var _getCheckedRadio = document.getElementsByName(name);
for(var i =0;i<_getCheckedRadio.length;i++){
 if (_getCheckedRadio[i].checked ){
  val = _getCheckedRadio[i].value;
 }
}
 return val;
}
调用表单值检索代码的示例:

function submit_quiz(){
 var one, two, three;
 one = getRadioValue(document.getElementById("ans1"), "a1");
 alert(one);
 one = getRadioValue(document.getElementById("ans2"), "a2");
 alert(two);
 one = getRadioValue(document.getElementById("ans3"), "a3");
 alert(three);
}
function getRadioValue(form, name){
 var val;
 var i;

 var f = form;
 var n = name;

 radios = f.elements[n];
 len = radios.length;

 for(i=0; i<len; i++){
  if(radios[i].checked){
    val = radios[i].value;
    break;
  }
 }
 return val;
}
函数提交_测验(){
变量一、二、三;
一=getRadioValue(document.getElementById(“ans1”),“a1”);
警报(一);
一=getRadioValue(document.getElementById(“ans2”),“a2”);
警觉(二);;
一=getRadioValue(document.getElementById(“ans3”),“a3”);
警报(三);
}
函数getRadioValue(形式、名称){
var-val;
var i;
var f=形式;
var n=名称;
无线电=f元素[n];
len=收音机长度;

对于(i=0;i无法找到提交测验的按钮。因此必须添加一个按钮,并将listener
onclick
附加到该按钮

也不需要传递表单
id
,因为单选按钮的名称不同,
document.getElementsByName
可用于获取该名称的单选按钮。然后通过节点列表循环查找选中的按钮

另外,在函数
submit\u quick
中,您正在提醒
two
twree
变量,但它们实际上未定义

var one, two, three; //Declared variable
 one = getRadioValue(document.getElementById("ans1"), "a1"); // Assigned to one
 alert(one);
//Assigned to one again but not two
     one = getRadioValue(document.getElementById("ans2"), "a2");
     alert(two); // alerting two but two in unassinged
   // Assigned to one again ,but alerting three
     one = getRadioValue(document.getElementById("ans3"), "a3");
     alert(three); //three is unassigned

document.getElementById("submitQuiz").onclick =function(){
 submit_quiz();
}

function submit_quiz(){
 var one, two, three;
 one = getRadioValue("a1");
 alert(one);
 two = getRadioValue("a2");
 alert(two);
 three = getRadioValue("a3");
 alert(three);
}



function getRadioValue(name){
var val =""
var _getCheckedRadio = document.getElementsByName(name);
for(var i =0;i<_getCheckedRadio.length;i++){
 if (_getCheckedRadio[i].checked ){
  val = _getCheckedRadio[i].value;
 }
}
 return val;
}
var一、二、三;//声明的变量
one=getRadioValue(document.getElementById(“ans1”),“a1”);//分配给one
警报(一);
//再次分配给一个,但不是两个
一=getRadioValue(document.getElementById(“ans2”),“a2”);
警报(两个);//在未指定的情况下警报两个,但两个
//再次分配给一个,但通知三个
一=getRadioValue(document.getElementById(“ans3”),“a3”);
警报(三);//三是未分配的
document.getElementById(“submitQuiz”).onclick=function(){
提交测验();
}
函数submit_quick(){
变量一、二、三;
一=getRadioValue(“a1”);
警报(一);
二=getRadioValue(“a2”);
警觉(二);;
三=getRadioValue(“a3”);
警报(三);
}
函数getRadioValue(名称){
var val=“”
var _getCheckedRadio=document.getElementsByName(名称);

因为(var i=0;i
2/3
被声明为
undefined
,并且它们的值没有设置在任何地方..显然我比编码时想象的要累。这只是你指出的简单错误(错过它们让我觉得很傻)。非常感谢。现在我可以修复所有问题并按时提交。