Javascript 获取所有选中复选框的值,并将其置于隐藏字段中

Javascript 获取所有选中复选框的值,并将其置于隐藏字段中,javascript,jquery,Javascript,Jquery,如何修改这个简单的check all代码,在选中复选框后获取所有值,然后将它们放入隐藏输入中,每个值都应该用逗号分隔,这样我就可以在php中分解这些值。复选框位于表行内 //checks all and unchecks all checkboxes based on checkbox in first row of the table. $('th input:checkbox').click(function(e) { var table = $(e.target).parents

如何修改这个简单的check all代码,在选中复选框后获取所有值,然后将它们放入隐藏输入中,每个值都应该用逗号分隔,这样我就可以在php中分解这些值。复选框位于表行内

//checks all and unchecks all checkboxes based on checkbox in first row of the table.
 $('th input:checkbox').click(function(e) {
    var table = $(e.target).parents('table:first');
    $('td input:checkbox', table).attr('checked', e.target.checked);

 });

您可以这样做:

$('th input:checkbox').click(function(e) {

   var currentChecked = $('#hiddenInput').val(); 

   if($(this).is(':checked'){
        $('#hiddenInput').val(currentChecked  + ',' + $(this).val());
   }

   //deleting the unchecked checkbox from the list
   else{
       var newValue = currentChecked .replace("," + $(this).val(), "");
   }

});

活生生的例子:

你可以在这篇文章中这样尝试:


我假设您的代码已经可以检查所有这些复选框。基本上,您只想获取选中的每个复选框的值

//checks all and unchecks all checkboxes based on checkbox in first row of the table.
 $('th input:checkbox').click(function(e) {
    var table = $(e.target).parents('table:first');
    var checkboxes = $('td input:checkbox', table).attr('checked', e.target.checked);
    var values = '';
    if(e.target.checked) {
       for(var i=0; i<checkboxes.length; i++) {
          values += $(checkboxes[i]).val() + ','; // the val method cant retrieve all the values of a set
       }
       values = values.substr(0, values.length - 1);
    }

    //place values in your hidden input

 });
//根据表第一行中的复选框选中所有复选框并取消选中所有复选框。
$(“第次输入:复选框”)。单击(函数(e){
var table=$(e.target).parents('table:first');
var复选框=$('td input:checkbox',table).attr('checked',e.target.checked);
var值=“”;
如果(例如,选中目标){
对于(var i=0;i这有帮助吗

$('th input:checkbox').click(function (e) {
    var table = $(e.target).parents('table:first');
    var vals = [];
    $('td input:checkbox', table).each(function(){
        $(this).attr('checked', e.target.checked);
        vals.push($(this).attr('checked') ? $(this).val() : '');
    });
    $('#hidden').val(vals.join());
});

这似乎是最接近我所寻找的,但它不太工作。我累了提醒值时,检查所有复选框被选中,但什么也没有发生,然后它改变了一个空白框取消选中。注意,有一个错误的循环条件,但至少得到值应该工作,如果真的选中复选框(也就是说,如果集合是正确的)。您能显示一个输入吗?问题可能出在其他地方。这似乎工作正常,但它将“on”作为隐藏字段中的第一个值。这似乎是此问题代码的近似副本:
$('th input:checkbox').click(function (e) {
    var table = $(e.target).parents('table:first');
    var vals = [];
    $('td input:checkbox', table).each(function(){
        $(this).attr('checked', e.target.checked);
        vals.push($(this).attr('checked') ? $(this).val() : '');
    });
    $('#hidden').val(vals.join());
});