2014-06-25 79 views
2

複選框的值未被存儲。當我提醒值代替選定的+ = elements [i] .value +「\ n」;我正在獲取價值。複選框數組值

<script> 

function whichIsChecked(){ 
    var selected = ""; 
    var elements = document.getElementsByName("colors[]"); 
    for(var i=0; i<=elements.length; i++){ 
     if(elements[i].checked){ 
      //alert(elements[i].value) // values are displayed 
     selected += elements[i].value + "\n"; 
    } 
    }  
    alert(selected); // not storing 
} 
</script> 


<form method="post" action=""> 
    <input type="checkbox" name="colors[]" value="red"> 
    <input type="checkbox" name="colors[]" value="blue"> 
    <input type="checkbox" name="colors[]" value="green"> 

    <input type="button" name="submit" value="Submit" onclick="whichIsChecked()"> 
</form> 

回答

3

for循環過頭去,造成一個TypeError因爲元素[3]不存在。將<=更改爲<

+0

+1。 @karthik_spain調試的第一步總是檢查你的代碼給你的錯誤 - 在這種情況下,在Chrome或Firefox的Firebug中打開開發者工具,你會看到這個錯誤。 –

+1

@CharlieS我已經在firefox中使用webdeveloper工具,它給了我TypeError。不知道錯誤信息是否會更有意義,如「超出範圍」或類似的情況。 –