2017-12-13 1 views
1

Ich füge meine Daten in einem JSON für Eingabeelemente, aber was passiert, wenn ich zwei Zeilen hinzufügen, in JSON drei Zeilen hinzugefügt wird. Ich weiß nicht warum.JSON Hinzufügen einer zusätzlichen Zeile in jquery mit leeren Daten

Unten ist mein json

[{"VendorCode":"Vendor 1","FromDate":"1/1/1970","ToDate":"1/1/1970"},{"VendorCode":"Vendor 1","FromDate":"2/1/1970","ToDate":"1/1/1970"},{"VendorCode":"","FromDate":"","ToDate":""}] 

Seine drei Reihen zeigen, aber es hat tatsächlich zwei Reihen. Hier ist der Code zum Speichern.

$(".vendorDaterow").each(function() { 

     var ID = ""; 
     var Name = ""; 
     var ToDate = ""; 
     var FromDate = ""; 
     var NameValues = []; 

     var allInputs = $(this).find("input"); 
     var objectToAdd = {}; 
     var Code = ""; 

      for (var i = 0; i < allInputs.length; i++) { 
       if (allInputs[i].name == "nmVendorData") { 
        objectToAdd["VendorName"] = allInputs[i].value; 
        Name = allInputs[i].value; 
        NameValues = Name.split('/'); 
        Code = NameValues[0]; 
        Name = NameValues[0]; 

       } 
       else if (allInputs[i].name == "spFromDate") { 
        objectToAdd["ToDate"] = allInputs[i].value; 
        FromDate = allInputs[i].value; 
       } 
       else if (allInputs[i].name == "spToDate") { 
        objectToAdd["FromDate"] = allInputs[i].value; 
        ToDate = allInputs[i].value; 
       } 
      } 

     arrVendorValues.push({ 
      "VendorCode": Code, 
      "FromDate": FromDate, 
      "ToDate": ToDate 
     }); 
    }); 

AKTUALISIERT

<tr id="vendorlisttr1"> 
          <td> 
           <div class="row noPadding vendorForm"> 
            <div class="vendorDaterow"> 
             <div class="vendorName" id="dvVendorNameData1"> 
              <label>SP Vender Name</label><span><input type="text" value="" name="nmVendorData" id="txtVendorName1" /></span> 
             </div> 
             <div class="vendorFromDate"> 
              <label>From Date</label><span class="datepicker"><input type="text" value="" name="spFromDate" id="spFromDate1" /><i class="fa fa-calendar" aria-hidden="true"></i></span> 
             </div> 
             <div class="vendorToDate"> 
              <label>To Date</label><span class="datepicker"><input type="text" value="" name="spToDate" id="spToDate1" /><i class="fa fa-calendar" aria-hidden="true"></i></span> 
             </div> 
            </div> 
            <div class="add"> 
             <i class="fa fa-plus" aria-hidden="true"></i> 
            </div> 

           </div> 
          </td> 
         </tr> 
+0

Da Sie 3 Objekte in 'arrVendorValues' übertragen bekommen, wäre es logisch anzunehmen, dass '$ (". VendorDaterow ") sich auf 3 Elemente bezieht. Da Sie den HTML-Code, an den er angehängt ist, nicht anzeigen (diese Frage sollte kein [mcve] sein), kann der Leser diese Annahme nicht bestätigen. – Tibrogargan

+0

@Tribrotargan: die fragliche HTML hinzugefügt. Beim Hinzufügen der Klasse klicken Sie die Zeile wird dynamisch generiert – BNN

+0

Sie zeigen nicht den HTML. Sie zeigen ein zufälliges Snippet, von dem Sie glauben, dass es das Problem enthält. Das Problem liegt wahrscheinlich in welchem ​​Code auch immer das "click" -Ereignis behandelt, nicht in dem, was Sie eingeschlossen haben. – Tibrogargan

Antwort

1

Mai Verwendung class als "vendorDaterow" dreimal so hoch sein. Aber zwei haben Eingänge oder check the not empty Bedingungen. Überprüfen Sie das Folgende in Ihrem Code.

arrVendorValues.push({ 
    "VendorCode": Code, 
    "FromDate": FromDate, 
    "ToDate": ToDate 
}); 

Into 

if(Code != ""){ 
    arrVendorValues.push({ 
     "VendorCode": Code, 
     "FromDate": FromDate, 
     "ToDate": ToDate 
    }); 
} 

Danke.

+0

ok lass mich versuchen und überprüfen – BNN

+0

@VVVV Okay gut, oder überprüfen Sie die nicht leere Bedingungen :-) –

0

Ich denke extra Zeile {"VendorCode":"","FromDate":"","ToDate":""} hat keine Werte. So können Sie dies versuchen,

Können Sie Frage mit geeignetem HTML-Inhalt aktualisieren? Es kann hilfreich sein, die zusätzliche Iteration zu verstehen.

Verwandte Themen