Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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

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

Javascript 获取所有选中的复选框,并在数组中添加它们的名称和值

Javascript 获取所有选中的复选框,并在数组中添加它们的名称和值,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有很大的表格,主要是下拉列表和复选框。复选框是动态创建的,所以在创建之前我不知道它们的id。我使用下拉onChange事件动态创建它们 如何在表单中循环并获取所有选中的复选框,即它们的id和值?我只需要为选中的复选框执行此操作。所有复选框共享相同的名称,即:categoriesfilters[]。目前,我在调用javascript函数的复选框上有一个单击事件 代码如下: function update_number_of_adds_found(field_dropdown,selected_v

我有很大的表格,主要是下拉列表和复选框。复选框是动态创建的,所以在创建之前我不知道它们的id。我使用下拉onChange事件动态创建它们

如何在表单中循环并获取所有选中的复选框,即它们的id和值?我只需要为选中的复选框执行此操作。所有复选框共享相同的名称,即:categoriesfilters[]。目前,我在调用javascript函数的复选框上有一个单击事件

代码如下:

function update_number_of_adds_found(field_dropdown,selected_value) {
                selected_value="";

               var addtypeid = $("#addtypeid").val();

               // trying to store the values of the checkboxes

                $(this).find("input[type=checkbox]:checked").each( 
                  function() { 
                   var id = $(this).attr('id');
                   var value = $(this).val(); // or maybe attr('value');
                   // the data is stored, do whatever you want with it.
                    alert(value);
                  } 
                );

               var selected_value = {
                                        addtypeid: addtypeid,
                                        // need to add the ids and the values here as well
                                    };



                 var url = "<?php echo site_url('search/findNumberOfAdds'); ?>";
        $.post(url, selected_value, function(r){
            if(r) {

                $('#totalNumOfAdds').empty();
                $("#totalNumOfAdds").append(r.result); 
            } else { 
               // alert(selected_value);
            }
        }, 'json')



            }
函数更新\u的数量\u添加找到的\u(字段\u下拉列表,选定的\u值){
所选_值=”;
var addtypeid=$(“#addtypeid”).val();
//尝试存储复选框的值
$(this).find(“input[type=checkbox]:checked”)。每个(
函数(){
var id=$(this.attr('id');
var value=$(this.val();//或者attr('value');
//数据已存储,您可以对其执行任何操作。
警报(值);
} 
);
所选变量\u值={
addtypeid:addtypeid,
//还需要在此处添加ID和值
};
var url=“”;
$.post(url、选定值、函数(r){
if(r){
$('#totalNumOfAdds').empty();
$(“#totalNumOfAdds”).append(r.result);
}否则{
//警报(所选的_值);
}
}(“json”)
}
尊敬的约翰,试试这个:

$('form').submit(function(){
$(this).find("input[type=checkbox]:checked").each( 
  function() { 
   var id = $(this).attr('id');
   var value = $(this).val(); // or maybe attr('value');
   // the data is stored, do whatever you want with it.
  } 
);
});

我想您应该在表单提交时检查这一点。

是否要使用Jquery

var arr = [];
$('input[name^="categoriesfilters"]:checked').each(function() {
    var obj = {
        id: $(this).attr('id');
        value: $(this).val();
    };
    arr.push(obj);        
});
console.log(arr); // show us the array of objects
在每个复选框中添加一个类,即“class_chk”

通过上述方法,您可以获得所有选中的复选框id和值

谢谢..

试试这个:

var categories = [];

$("input[name='categoriesfilters[]']:checked").each( 
  function() { 
      var id = $(this).attr("id");
      var value = $(this).val();
      categories[categories.length] = {id : value};
  } 
);

console.log(categories);

$.post(url, categories, function(r){

显示您当前的代码…嗨,我刚刚更新了我的问题..您的意思是
$(this).val()
?是的,谢谢,我总是混淆this.value和$(this).val();您的解决方案非常有效。我现在如何更新变量var selected_值(请参阅问题中的代码。仍在努力更新我的var selected_值..你能帮忙吗?好的,我编辑了我的帖子,试用一下。不需要所选_值变量。实际上我有…我正在发送其他值,所以我想将类别添加到所选_值变量中
var categories = [];

$("input[name='categoriesfilters[]']:checked").each( 
  function() { 
      var id = $(this).attr("id");
      var value = $(this).val();
      categories[categories.length] = {id : value};
  } 
);

console.log(categories);

$.post(url, categories, function(r){