序列化不再像它应该的那样工作了

时间:2012-11-01 11:22:35

标签: jquery serialization input checkbox

序列化不再像它那样工作了。它只选择那些在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');
            });
    });

3 个答案:

答案 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({