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

3 回答 3

0

您正在检查返回的字符串的长度,.serialize()没有必要使用.seialize()

如果您只想检查是否有选中的复选框,您只需要执行以下操作:

$('#imObjectForm').prop('disabled', $('input:checked', oTable).length == 0);
于 2012-11-01T11:25:52.873 回答
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');
        });
});
于 2012-11-01T11:28:06.317 回答
0

它再次起作用。感谢 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({
于 2012-11-01T20:58:22.473 回答