Javascript 获取多个复选框的值,并使用ajax使用其值执行操作

Javascript 获取多个复选框的值,并使用ajax使用其值执行操作,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有复选框的表,如果选中复选框,我希望删除数据库中的原始数据-使用ajax 使用普通形式,我只需简单地命名所有的chexbox,比如name=“checkbox[]” 然后简单地使用foreach($_POST['checkbox']作为$value){} 现在,我尝试获取标记复选框的所有值,然后将它们放入一个数组中。但我似乎错过了什么。以下是我到目前为止所做的: var checkboxes = jQuery('input[type="checkbox"]').val(); var t

我有一个带有复选框的表,如果选中复选框,我希望删除数据库中的原始数据-使用ajax

使用普通形式,我只需简单地命名所有的chexbox,比如name=“checkbox[]” 然后简单地使用foreach($_POST['checkbox']作为$value){}

现在,我尝试获取标记复选框的所有值,然后将它们放入一个数组中。但我似乎错过了什么。以下是我到目前为止所做的:

var checkboxes = jQuery('input[type="checkbox"]').val();
var temp = new Array();
jQuery.each(checkboxes, function(key, value) { 
     temp[] = value;
});
稍后我将把temp作为变量传递给ajax调用


有什么我遗漏的吗?

您试图迭代错误的复选框值。试试这个

var $checkboxes = jQuery('input[type="checkbox"]') ;
var temp = new Array();
jQuery.each($checkboxes, function(i) {
     var value = $(this).attr('value'); 
     temp[i] = value;
});
如果只想通过选中的项目,只需添加一个条件

if($(this).is(':checked')){
  var value = $(this).attr('value'); 
  temp[i] = value;
}

您可以使用
:选中的
选择器和
映射
方法:

var arr = $('input[type="checkbox"]:checked').map(function(){
     return this.value
}).get();

只需将表格包装在表单标记中,然后执行以下操作:

var myData = jQuery('#myform').serialize();
jQuery.ajax('myscript.php', {data:myData});

请注意,JavaScript不是Java。请查看jQuery.map(),它比jQuery.each()更适合此任务。chained.get()的用途是什么。map将返回一个数组。@MattStone map返回一个jquery包装的数组,get返回实际数组。你确定吗?文档()或快速测试()表明情况并非如此。@MattStone是的,您使用的是$.map实用程序函数,我使用了这个map@MattStone如果不获取,您将有TypeError:arr.join不是函数