Javascript 获取所有选中复选框的值,并将其置于隐藏字段中
如何修改这个简单的check all代码,在选中复选框后获取所有值,然后将它们放入隐藏输入中,每个值都应该用逗号分隔,这样我就可以在php中分解这些值。复选框位于表行内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
//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());
});