2012-11-01 38 views
0

序列化不再像它應該那樣工作了,它只會選擇那些在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

您正在使用的jQuery的版本。 – Jai

+0

jquery-1.8.2.js –

+0

改爲使用live live因爲live在最新版本中被棄用 – Jai

回答

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'); 
     }); 
}); 
0

要檢查由.serialize()返回的字符串的長度,就沒有必要使用.seialize()

如果你只是要檢查是否有勾選複選框,你只需要做:

$('#imObjectForm').prop('disabled', $('input:checked', oTable).length == 0); 
0

它的工作again.Thanks 4您的快速回覆在這。那麼這裏最大的問題是缺少

Ø

在: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({ 
相關問題