Ich habe diese Code-Anhänge in meinem Javascript, die jedes Mal eine neue Zeile hinzugefügt, wenn Sie auf die Schaltfläche klicken, um einen neuen Mitarbeiter hinzuzufügen.Übergeben von angehängten Werten über JSON-Objekt an JQuery AJAX gesendet werden
Hier ist der Code, der gut funktioniert.
tab_workers.on('click', '.add-workers', function (e){
e.preventDefault();
var iRow = $('tbody tr:last',tab_workers).index() + 1;
var nRow = $("<tr>\n" +
"<td width='30%'><input name='worker_name_"+ iRow +"' class='form-control' placeholder='Name' /></td>\n" +
"<td width='50%'><input name='worker_address_"+ iRow +"' type='text' class='form-control' placeholder='Address'></td>\n" +
"<td width='14%'><input name='worker_phone_"+ iRow +"' type='text' maxlength='11' onkeypress='return event.charCode >= 48 && event.charCode <= 57' class='form-control' placeholder='Phone No.'></td>\n" +
"<td width='3%'><a class='btn btn-outline btn-circle btn-sm red del-workers pull-right'><i class='fa fa-remove'></i>Remove</a></td>" +
"</tr>\n");
$('tbody',tab_workers).append(nRow);
Dann habe ich diesen Code in die Ajax-Post-Methode gesendet, indem sie es in JavaScript-Objekt zuerst gewickelt wird.
var workers = [];
$("[name^=worker_name]",tab_workers).each(function(i, wname){
//var workername = $("[name=worker_name_"+i+"]");
var workeradd = $("[name=worker_address_"+i+"]");
var workerphone = $("[name=worker_phone_"+i+"]");
workers.push({
uwiName: $(wname).val(),
uwiAddress: $(workeradd).val(),
uwiPhone: $(workerphone).val()
});
});
var workerdetails = {
umkeiWorkerInfo: workers,
};
console.log(workerdetails);
Die obige console.log gibt null für alle Felder (Name, Adresse, Telefone) zurück.
ist der Ajax-Teil,
$.ajax({
type: "post",
url: 'home/umkei/ssuForm/create/workers',
data: JSON.stringify(workerdetails),
contentType : "application/json",
success: function(d){
Metronic.unblockUI(el);
showMetronicAlert('success','check',msgSuccess);
console.log(d);
}
});
Vielen Dank im Voraus.
Ist 'tab_workers' Eltern' table' Element? Wird '.each()' aufgerufen, bevor der Benutzer Text in 'input' Elemente eingibt? – guest271314
Erstellen Sie eine Demo mit echtem HTML, das Probleme repliziert – charlietfl