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>
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
@Tribrotargan: die fragliche HTML hinzugefügt. Beim Hinzufügen der Klasse klicken Sie die Zeile wird dynamisch generiert – BNN
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