我正在使用javascript函数,该函数使用YES或NO的RadioButtons获取一些问题的值。为了得到一个问题(Q1)的值,我做了类似的事情:
for (i=0; i<document.form1.Q1.length; i++){
if(document.form1.Q1[i].checked)
Array[0] = document.form1.Q1[i].value;
}
我必须为每个问题执行此操作,因此代码变得非常长。所以我试图创建一个函数或循环,其中问题的名称正在改变。我唯一的问题是我不知道如何在document.form1.VARIABLE.value
上使用变量。我已经尝试了一些方法,但没有工作。
任何人都可以帮我吗?
非常感谢!
答案 0 :(得分:2)
使用
document.forms['form-name']['radio-button-name'].value
并提供que_1
que_2
等单选按钮名称,以便您可以使用字符串连接使用i
更改
答案 1 :(得分:2)
这是一个循环,它将遍历您的单选按钮并使用值构建一个数组。在代码和示例中,它设置用于测试三个问题(名为Q1,Q2和Q3)。完成后,数组“aux”包含已检查值列表:
var max = 3;
var aux = new Array();
function getCheckedValue(groupName) {
var radios = document.getElementsByName(groupName);
for (i = 0; i < radios.length; i++) {
if (radios[i].checked) {
return radios[i].value;
}
}
return null;
}
function check() {
for(var i=1;i<=max;i++) {
//console.log(i,getCheckedValue('Q'+i));
aux[i-1] = getCheckedValue('Q'+i);
}
console.log(aux);
}
的 jsFiddle example 强>
答案 2 :(得分:1)
不要使用单选按钮,而是使用复选框(checked = yes,unchecked = no)。然后你可以自由地迭代你的复选框,看看有没有检查过什么。罢工,OP需要“是”,“否”和“无回答”之间的区别。
经过一些广泛的编码(我的JS生锈)后,我想出了以下内容:
<form name=form1 id=form1 action="index.php">
<p>Question 1</p>
<label><input type="radio" name="Q1" value="yes">Yes</label>
<label><input type="radio" name="Q1" value="no">No</label>
<p>Question 2</p>
<label><input type="radio" name="Q2" value="yes">Yes</label>
<label><input type="radio" name="Q2" value="no">No</label>
<p>Question 3</p>
<label><input type="radio" name="Q3" value="yes">Yes</label>
<label><input type="radio" name="Q3" value="no">No</label>
<button id="go">Go!</button>
</form>
<script type="text/javascript">
check = function (e) {
e.preventDefault(); //Don't submit!
var result = [];
var form = document.getElementById("form1");
for (var i = 1; typeof(form["Q" + i]) != "undefined"; i++) {
for (var j = 0; j < form["Q" + i].length; j++) {
if (form["Q" + i][j].checked) {
result.push(form["Q" + i][j].name + " " + form["Q" + i][j].value);
}
}
}
console.log(result);
}
button = document.getElementById("go");
button.onclick = check;
</script>
点击“开始!”触发按钮。
重点是使用“Q”和i的字符串连接到“Q1”“Q2”等。