Ich habe ein HTML-Formular mit 3 Feldern. Ich möchte, dass sie als JSON-Objekt serialisiert werden (die bisher mit meinem getFormData($form)
Methode funktioniert aber jetzt möchte ich in meiner Form alle Felder ohne Input/Wert auszuschließenSerialize Formular als JSON ohne leere Werte
Diese serialisiert meine Form und speichert es als JSON-Objekt..:
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
Dies ist, wie ich versucht, Felder zu filtern, ohne Wert:
var form = $("#bulk-edit-fut-account-form :input[value!='']");
console.log(JSON.stringify(form));
var formData = getFormData(form);
Meine HTML-Formular:
<form id="bulk-edit-fut-account-form" class="form-horizontal" novalidate="novalidate"><div class="form-group"><label class="col-sm-3 control-label">Id<span class="asterisk">*</span></label><div class="col-sm-9"><input id="bulkAccountIds" type="text" required="" readonly="" value="118 119 " data-id="[{"Id":118},{"Id":119}]" class="form-control valid" aria-required="true"></div></div><div class="form-group"><label class="col-sm-3 control-label">Max. Requests/minute</label><div class="col-sm-9"><input type="number" name="RequestsPerMinute" placeholder="Type maximum amount of reqs/min..." class="form-control valid"></div></div><div class="form-group"><label class="col-sm-3 control-label">Request Threshold</label><div class="col-sm-9"><input type="number" name="Threshold" placeholder="Type fastest timeframe for 1 request in seconds..." class="form-control valid"></div></div><div class="form-group"><label class="col-sm-3 control-label">Comment</label><div class="col-sm-9"><textarea name="Comment" rows="5" class="form-control"></textarea></div></div></form>
Das Problem:
den obigen Code verwenden, wird es leere Felder serialisiert noch (aber ich will, dass vermeiden). Dies ist das Ergebnis { RequestsPerMinute: '121', Threshold: '', Comment: '' }
. Wie kann ich vermeiden, die Felder ohne Wert zu serialisieren?
Können Sie entfernen versuchen, die ':' von Ihrem 'var form = $ ("# bulk-edit-fut-account-form: input [wert! = '']"); '? – Santi
@TylerRoper das wäre eigentlich wahrscheinlich richtig. Jetzt ignoriert es mein "Kommentar" -Feld, das ein Textfeld ist und leere Felder immer noch nicht filtert. Sieht so aus, als ob meine Idee nicht wie gewünscht funktioniert hat. – kentor
Überprüfen Sie meine Antwort und lassen Sie mich wissen, ob das funktioniert. – Santi