使用复选框确定javascript变量的值

时间:2014-01-29 02:34:49

标签: javascript html

如何根据检查的html复选框将javascript变量添加到javascript数组中?我想关闭复选框并让每个复选框添加选项#in var final_list。

我应该如何识别我的清单以及我应该将我的var final_list = []更改为?

这是我的复选框的html(共有12个):

<input type="checkbox" id="c1" name="c1" />

这是javascript:

function myFunction(){

var list1  = [          ];
var list2  = [          ];  
var list3  = [          ];  
var list4  = [          ];  
var list5  = [          ];  
var list6  = [          ];  
var list7  = [          ];  
var list8  = [          ];  
var list9  = [          ];  
var list10 = [          ];  
var list11 = [          ];  
var list12 = [          ];  

var choice1  = list1[Math.floor(Math.random()*list1.length)];
var choice2  = list2[Math.floor(Math.random()*list2.length)];
var choice3  = list3[Math.floor(Math.random()*list3.length)];
var choice4  = list4[Math.floor(Math.random()*list4.length)];
var choice5  = list5[Math.floor(Math.random()*list5.length)];
var choice6  = list6[Math.floor(Math.random()*list6.length)];
var choice7  = list7[Math.floor(Math.random()*list7.length)];
var choice8  = list8[Math.floor(Math.random()*list8.length)];
var choice9  = list9[Math.floor(Math.random()*list9.length)];
var choice10 = list10[Math.floor(Math.random()*list10.length)];
var choice11 = list11[Math.floor(Math.random()*list11.length)];
var choice12 = list12[Math.floor(Math.random()*list12.length)];

var final_list   = [         ];
var finalchoice = final_list[Math.floor(Math.random()*final_list.length)];

}

1 个答案:

答案 0 :(得分:1)

我现在要直接告诉你,你的JavaScript毫无意义,因为它对你想做的事情没有贡献,所以我要告诉你如何做到这一点。从零开始!

使用类,如

<input type="checkbox" class="c" />

在您的Javascript中,您会有类似

的内容
var final_list = []
var checkboxes = document.getElementsByClassName('c');
for (var i = 0; i < checkboxes.length; i++) {
    checkboxes[i].onchange = function () {
        final_list = [];
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].checked) {
                final_list.push(i);
                alert(final_list);
            }
        }
    };
}

并且每次选中复选框时,该数字都将添加到数组中。如果您的所有输入都是复选框,您也可以这样做:

var final_list = []
var checkboxes = document.getElementsByTagName('c');
for (var i = 0; i < checkboxes.length; i++) {
    checkboxes[i].onchange = function () {
        final_list = [];
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].checked) {
                final_list.push(i);
                alert(final_list);
            }
        }
    };
}

,唯一的更改getElementsByClassName已替换为getElementsByTagName。 ID是唯一的,请不要在这种情况下使用它们。

<强> DEMO