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

在复选框检查和JavaScript取消检查时从全局数组中删除特定元素

在复选框检查和JavaScript取消检查时从全局数组中删除特定元素,javascript,jquery,arrays,push,splice,Javascript,Jquery,Arrays,Push,Splice,当用户选中或取消选中表单中的复选框时,我尝试更新全局数组。然后将该数组提交给服务器,以更新数据库中选中的选项。 我已经将选中复选框的ID放入一个数组,但不确定如何删除它们 我创建了一个基本的JSFIDLE来演示: PS-数组稍后将正确命名:)因为每次都要循环检查所有复选框,只需在开始时清空数组,然后只将选中的项放回: ids = []; if (this.checked) { ids.push(this.id); } 由于每次都循环检查所有复选框,因此只需在开始时清空数组,

当用户选中或取消选中表单中的复选框时,我尝试更新全局数组。然后将该数组提交给服务器,以更新数据库中选中的选项。 我已经将选中复选框的ID放入一个数组,但不确定如何删除它们

我创建了一个基本的JSFIDLE来演示:


PS-数组稍后将正确命名:)

因为每次都要循环检查所有复选框,只需在开始时清空数组,然后只将选中的项放回:

ids = [];

if (this.checked) {    
    ids.push(this.id);
}

由于每次都循环检查所有复选框,因此只需在开始时清空数组,并仅将选中的项放回:

ids = [];

if (this.checked) {    
    ids.push(this.id);
}

我认为您可能会很好地使用jQuery serializeArray()


编辑:

我认为您可能会很好地使用jQuery serializeArray()


编辑:

为什么每次单击都要执行此操作,只需在提交表单时执行此操作-有一个:选中的选择器,您也可以使用,而不是选择和迭代您不感兴趣的元素

正如jyoseph所建议的,您可以在这里使用序列化数组来构建名称/值数组

e、 g


为什么每次点击都要这样做,只需在表单提交时这样做-有一个:checked选择器,您也可以使用,而不是选择和迭代您不感兴趣的元素

正如jyoseph所建议的,您可以在这里使用序列化数组来构建名称/值数组

e、 g


我希望你不介意,我把
$(this).is(“:checked”)
换成了效率更高的
this.checked
$(this).attr(“id”)
换成了效率更高的
this.id
。OP的代码有一个小错误,我也修复了+我希望你不介意,我用效率更高的
this.checked>替换了
$(this).is(“:checked”)
。用效率更高的
this.id
替换了
$(this).attr(“id”)
。OP的代码有一个小错误,我也修复了+问题是表格中有分页。每次调用页面时,都没有更新值的post。因此,需要在每次检查/取消检查时更新全局数组。@RyanP13 Ah-最新突破性需求新闻!有了这些信息,我就不会说上面的话了!我会使用.delegate,而不是所有checkboxesapologies上的点击事件。迫于压力,他匆忙回答了这个问题。是的,我通常也会使用委托。问题是表中有分页。每次调用页面时,都没有更新值的post。因此,需要在每次检查/取消检查时更新全局数组。@RyanP13 Ah-最新突破性需求新闻!有了这些信息,我就不会说上面的话了!我会使用.delegate,而不是所有checkboxesapologies上的点击事件。迫于压力,他匆忙回答了这个问题。是的,我通常也会使用委托。
$('#submitButton').click( function(ev){

   var ids = [];

    $(':checkbox:checked').each( function(){

         ids.push(this.id);

    });

   //do something with ids

});