Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取循环上的单选按钮值_Javascript_Html_Radio Button - Fatal编程技术网

Javascript 获取循环上的单选按钮值

Javascript 获取循环上的单选按钮值,javascript,html,radio-button,Javascript,Html,Radio Button,我正在使用一个javascript函数,该函数使用单选按钮YES或NO获取一些问题的值。要获取一个问题(Q1)的值,我执行以下操作: for (i=0; i<document.form1.Q1.length; i++){ if(document.form1.Q1[i].checked) Array[0] = document.form1.Q1[i].value; } for(i=0;i不要使用单选按钮,而是使用复选框(checked=yes,unchecked=no)

我正在使用一个javascript函数,该函数使用单选按钮YES或NO获取一些问题的值。要获取一个问题(Q1)的值,我执行以下操作:

for (i=0; i<document.form1.Q1.length; i++){
   if(document.form1.Q1[i].checked)
       Array[0] = document.form1.Q1[i].value;
}
for(i=0;i不要使用单选按钮,而是使用复选框(checked=yes,unchecked=no)。然后您可以自由地重复您的复选框,并查看选中和未选中的内容。删除,OP需要“yes”、“no”和“no answer”之间的差异


经过大量编码(我的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>

问题1

对 不 问题2

对 不 问题3

对 不 走! 检查=功能(e){ e、 preventDefault();//不要提交! var结果=[]; var form=document.getElementById(“form1”); 对于(变量i=1;类型of(形式[“Q”+i])!=“未定义”;i++){ 对于(var j=0;j
通过单击“Go!”按钮触发


重点是使用“Q”和“i”的字符串连接来获得“Q1”和“Q2”等等。

使用

document.forms['form-name']['radio-button-name'].value

给单选按钮命名,比如
que_1
que_2
,这样你就可以通过
i
使用字符串连接来改变它。这里有一个循环,它将遍历你的单选按钮并用值构建一个数组。在代码和示例中,它被设置为测试三个问题(命名为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);
}
var max=3;
var aux=新数组();
函数getCheckedValue(groupName){
var radios=document.getElementsByName(groupName);
对于(i=0;i对于(var i=1;i您对每个问题的辅助变量做了什么?@j08691实际上我使用了一个数组,所以我使用数组[0]=document.form1.Q1[i]。value;数组[1]=document.form1.Q2[i].value;等等!你这样做是为了什么?那么,有什么能阻止一些傻瓜在每个问题上选择是和否呢?@j08691:只有一个复选框,选中=是,不选中=否。
[x]问题1
[]问题2
等等。@事实上,它们必须是单选按钮。因为我需要知道值之间的区别=“否”"如果没有任何答案,请不要使用复选框,使用单选按钮,因为这正是它们的用途。@Truth-请不要摆出居高临下的态度。单选按钮用于从组中选择零个或一个项目。句号。复选框用于从组中选择零个或多个项目。因此,尽管单个复选框可能获得工作,但请不要e、 它不是向用户展示的合适UI,也不是解决此问题的合适选择。