2015-10-04 95 views
0

我有一个表格收集雇员生产数据,以下是代码:Javascript对象结构

$(document).on('click','input#Apply.btn.btn-success',function(e){ 

    var TableData; 
    TableData = storeTblValues(); 
    var TableData1 = []; 

    $.each(TableData,function(index,value){ 

     if(value.quantity && value.quantity >0 && value.quantity < 65535){  
      TableData1[index]={ 

       "employee_id" : value.employee_id 
      , "operation_id" : value.operation_id 
      , "quantity" : value.quantity  
      } 

     } 
      }); 
    // retrieving employee_id to fetch date data from date input   
    $.each(TableData1,function(index,value){   
     employee_idj = value.employee_id; 
     }); 

    $('#cboxClose').click(); 
    var datee = dateConvToMySqlDate($('input#dateOfProduction_'+employee_idj+'.dateOfProduction_.hasDatepicker').val()); 
    if(!datee){alert(dateMessager);e.preventPropagation();return false;} 
    var noOfRecords = TableData1.length; 

    for(i=0;i<noOfRecords;i++) 
    {TableData1[i]['production_date'] = datee;} 

    var TableData1 = $.toJSON(TableData1); 
    alert(JSON.stringify(TableData1)); 
    var qurl = '<?php echo base_url();?>production_entry/submitData'; 
    $.ajax({ 
    url: qurl, 
    type: "POST",  
    data:"pTableData=" + TableData1,   
    success: function(data){ 

      var data = $.parseJSON(data); 
      if(data.status == 'error') 
      { 
      alert(data.errorMessage); 
      }else{ 
      alert(noOfRecords+' records sent and '+' '+data.successMessage); 

       $('#tr_'+employee_idj).fadeOut(); 
      } 
      } 
    }); 

    function storeTblValues() 
    {  

     var TableData = new Array(); 

     $('#searchOperationTable tr').each(function(row, tr){ 

     var x = parseInt($(tr).find("input.quantity").val()); 

      if(x){ 
      TableData[row]={ 

       "employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val()) 
      , "operation_id" : parseInt($(tr).find('td:eq(0)').text()) 
      , "quantity" : parseInt($(tr).find("input.quantity").val())  
      } 
     } 
      }); 
      TableData.shift(); 
      return TableData; 
    } 

}); 

当有人进入等于0的数量值错误,则该TableData1对象变为

[ null,{"employee_id" : 3816,"operation_id":3,"quantity":10}] 

并且脚本停止工作。我想消除这个null。该怎么办?

回答

0

当输入0时,您的支票if(x)为false,因此不会为该条目设置TableData[row]。相反,设定使用array.push您的资料表:

 if(x){ 
     TableData.push({ 
      "employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val()) 
     , "operation_id" : parseInt($(tr).find('td:eq(0)').text()) 
     , "quantity" : parseInt($(tr).find("input.quantity").val())  
     }) 
    } 
0

如果你不关心数组的索引值,那么你可以使用push(value)而不是array[index]=value。 就像我的例子:

TableData.push({ 
    "employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val()), 
    "operation_id" : parseInt($(tr).find('td:eq(0)').text()), 
    "quantity" : parseInt($(tr).find("input.quantity").val())  
});`