序列化不再像它那样工作了。它只选择那些在DataTables oTable中可见的输入。
jQuery(':checkbox').live('click',function(){
var nn = jQuery('input:checked', oTable).serialize();
var n=nn.length;
if (n!='0'){
jQuery('#imObjectForm').attr('disabled',false);
}
else {
jQuery('#imObjectForm').attr('disabled',true);
}
});
jQuery('#osszes').submit(function(){
jQuery("input:hidden").remove();
var fields = jQuery('input', oTable).serializeArray();
jQuery.each(fields, function(i, field){
jQuery('<input type="hidden" id="imSpProt" name="imSpProt[]" value="' + field.value + '" />').appendTo('#inputok');
});
});
答案 0 :(得分:0)
您正在检查.serialize()
返回的字符串的长度,无需使用.seialize()
。
如果您只想检查是否有复选框,则只需执行以下操作:
$('#imObjectForm').prop('disabled', $('input:checked', oTable).length == 0);
答案 1 :(得分:0)
试试这个:
jQuery(':checkbox').on('click',function(){
var nn = jQuery('input:checked', oTable).serialize();
var n=nn.length;
if (n!='0'){
jQuery('#imObjectForm').attr('disabled',false);
}
else {
jQuery('#imObjectForm').attr('disabled',true);
}
});
jQuery('#osszes').submit(function(){
jQuery("input:hidden").remove();
var fields = jQuery('input', oTable).serializeArray();
jQuery.each(fields, function(i, field){
jQuery('<input type="hidden" id="imSpProt" name="imSpProt[]" value="' + field.value + '" />').appendTo('#inputok');
});
});
答案 2 :(得分:0)
它再次运作。谢谢你4快速回复。这里最大的问题是缺少
0
at:oTable = jQuery('#table_id').dataTable({
jQuery(':checkbox').on('click',function(){
var nn = jQuery('input:checked', oTable.fnGetNodes()).serialize();
var n=nn.length;
if (n!='0'){
jQuery('#imObjectForm').attr('disabled',false);
}
else {
jQuery('#imObjectForm').attr('disabled',true);
}
});
jQuery('#osszes').submit(function(){
jQuery("input:hidden").remove();
var fields = jQuery('input', oTable.fnGetNodes()).serializeArray();
jQuery.each(fields, function(i, field){
jQuery('<input type="hidden" id="imSpProt" name="imSpProt[]" value="' + field.value + '" />').appendTo('#inputok');
});
});
oTable = jQuery('#table_id').dataTable({