2016-01-25 145 views
0

我在我的PHP項目中使用了小枝。恢復選中的複選框的所有值,並將它們推入數組

我有一個包含許多複選框的表單。我需要在JavaScript中恢復數組中複選框的所有選中值。

這是JavaScript:

<script type="text/javascript" charset="utf-8" async defer> 
    document.getElementById("{{ value }}").onclick = function() { /* {{ value }} is value of my checkboxe, twig variable it matches like a php variable */ 
    if (this.checked) { /* check if checkboxes are checked */ 
     var valueChecked = this.value; 
     console.log(valueChecked); /* just to display the value for debug */ 

     var valueArray = []; /* I create an array */ 
     /* here I need to put all my checkboxes values in allCheckedConfig */ 
    } else { 
     console.log("removed " + this.value); /* just to debug, check if checkboxes are unchecked */ 
    } 
    }; 
</script> 

我如何填充我valueArray[]

回答

1

你可以在陣列喜歡使用map功能如下。

​​
+0

好像你的答案是一個好東西。事實上,我需要恢復數組中的所有值,而不僅僅是一次一個。所以我在找什麼。謝謝,我驗證了你的答案。 –

+1

我的答案將恢復所有值,而不是一次一個。 @french_dev – Azim

0

如果您有jQuery的在你的網站,你可以看serializeArray功能

1

.push是你需要

var valueArray = []; 
    document.getElementById("{{ value }}").onclick = function() { 
    if (this.checked) { 
     var valueChecked = this.value; 
     console.log(valueChecked); 
     valueArray.push(valueChecked); 
     console.log(valueChecked); // Should give you the array. 
    } else { 
     console.log("removed " + this.value); 
    } 
    }; 
+0

看起來你的解決方案有效,但如果我檢查了很多複選框,'valueArray []'必須返回數組中的所有值,或者當我創建'console.log()'方法時,數組只返回一個價值一次像'[「{{價值}}​​」]'。 您是否認爲數組包含所有選中的值? –

+1

@french_dev檢查uodated代碼。 – void

0

試試這個

var arr=$('input[type=checkbox]:checked').map(function(k,v){return $(v).val();}); 
相關問題