Ich habe ein Formular mit vielen Eingabefeldern.
Wenn ich das Submit-Formular-Ereignis mit jQuery abfangen, ist es möglich, alle Eingabefelder dieses Formulars in einem assoziativen Array zu erhalten?
$('#myForm').submit(function() {
// get all the inputs into an array.
var $inputs = $('#myForm :input');
// not sure if you wanted this, but I thought I'd add it.
// get an associative array of just the values.
var values = {};
$inputs.each(function() {
values[this.name] = $(this).val();
});
});
Dank des Tipps von Simon_Weaver, hier ist eine andere Möglichkeit, wie Sie es tun können, mit serializeArray
:
var values = {};
$.each($('#myForm').serializeArray(), function(i, field) {
values[field.name] = field.value;
});
Beachten Sie, dass dieses Snippet bei <select multiple>
Elementen fehlschlagen wird.
Es scheint, dass die [neuen HTML 5 Formulareingaben] (http://diveintohtml5.ep.io/forms.html) nicht mit serializeArray
in jQuery Version 1.3 funktionieren. Dies funktioniert in Version 1.4+
Assoziativ? Nicht ohne einige Arbeit, aber Sie können generische Selektoren verwenden:
var items = new Array();
$('#form_id:input').each(function (el) {
items[el.name] = el;
});