Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Jquery_Arrays_Checkbox_Twig - Fatal编程技术网

Javascript 恢复选中复选框的所有值并将其按入数组

Javascript 恢复选中复选框的所有值并将其按入数组,javascript,jquery,arrays,checkbox,twig,Javascript,Jquery,Arrays,Checkbox,Twig,我在php项目中使用了twig 我有一个包含许多复选框的表单。我需要在javascript中恢复数组中复选框的所有选中值 这是javascript: <script type="text/javascript" charset="utf-8" async defer> document.getElementById("{{ value }}").onclick = function() { /* {{ value }} is value of my checkboxe, twig

我在php项目中使用了twig

我有一个包含许多复选框的表单。我需要在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>

document.getElementById(“{{value}”).onclick=function(){/*{{value}}是我的checkbox的值,它和php变量一样匹配*/
如果(this.checked){/*选中复选框*/
var valueChecked=this.value;
console.log(valueChecked);/*仅用于显示调试值*/
var valueArray=[];/*我创建了一个数组*/
/*在这里,我需要将所有复选框值放入allCheckedConfig*/
}否则{
console.log(“removed”+this.value);/*要调试,请检查复选框是否未选中*/
}
};

如何填充我的
valueArray[]

如果你的网站上有jQuery,你可以查看函数如果你的网站上有jQuery,你可以查看函数你可以使用
映射
函数获得如下数组

var elems = document.querySelectorAll('input[type=checkbox]:checked');
var valueArray = Array.prototype.map.call(elems, function (obj) {
    return obj.value;
});
console.log(valueArray)

您可以使用
map
函数获得如下数组

var elems = document.querySelectorAll('input[type=checkbox]:checked');
var valueArray = Array.prototype.map.call(elems, function (obj) {
    return obj.value;
});
console.log(valueArray)

.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 ); 
    }
  };

.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 ); 
    }
  };
试试这个

var arr=$('input[type=checkbox]:checked').map(function(k,v){return $(v).val();});
试试这个

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

看起来您的解决方案是可行的,但是如果我选中了许多复选框,
valueArray[]
必须返回数组中的所有值,或者当我使用
console.log()
方法时,数组一次只返回一个值,就像
[{{value}}]
一样。你认为数组包含所有选中的值吗?看起来你的解决方案是可行的,但是如果我选中了许多复选框,
valueArray[]
必须返回数组中的所有值,或者当我使用
console.log()
方法时,数组一次只返回一个值,就像
[{value}}]
一样。你认为数组包含所有的检查值吗?看起来你的答案是正确的。实际上,我需要恢复数组中的所有值,而不是一次只恢复一个值。这就是我要找的。谢谢,我验证您的答案。我的答案将恢复所有值,而不是一次恢复一个值@看来你的答案是好的。实际上,我需要恢复数组中的所有值,而不是一次只恢复一个值。这就是我要找的。谢谢,我验证您的答案。我的答案将恢复所有值,而不是一次恢复一个值@法文