2014-01-29 50 views
0

如何根據HTML複選框的選項將javascript變量添加到javascript數組中?我想複選框關閉,並將每個複選框添加到# var final_list中。使用複選框來確定JavaScript變量的值

我應該如何識別我的清單,以及我應該如何將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

我要直接了,現在告訴你你的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

+0

來吧,這讓人有點感覺的笑。我想要12個列表,腳本從數組中隨機選擇一些東西(list1-list12),我只是暫時將它們留空。但我想要複選框將選項添加到final_list數組中。因此,如果這個人檢查,例如,方框1和方框7,該數組將是var final_list = [choice1,choice7] – adigioia

+0

@adigioia如果使用此腳本執行此操作,它會使final_list [1,7] – Cilan

+0

感謝你我仍然有一個小問題var finalchoice字面上出來作爲'choice1'而不是變量choice1任何建議 – adigioia

相關問題