Αποκτήστε πεδία εισόδου φόρμας χρησιμοποιώντας jQuery;

Έχω μια φόρμα με πολλά πεδία εισόδου.

Όταν πιάνω το συμβάν submit form με την jQuery, είναι δυνατόν να λάβω όλα τα πεδία εισόδου αυτής της φόρμας σε έναν συσχετιστικό πίνακα;

Λύση
$('#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();
    });

});

Χάρη στη συμβουλή του Simon_Weaver, εδώ είναι ένας άλλος τρόπος που μπορείτε να το κάνετε, χρησιμοποιώντας την serializeArray:

var values = {};
$.each($('#myForm').serializeArray(), function(i, field) {
    values[field.name] = field.value;
});

Σημειώστε ότι αυτό το απόσπασμα θα αποτύχει σε <select multiple> στοιχεία.

Φαίνεται ότι οι νέες είσοδοι φόρμας HTML 5 δεν λειτουργούν με το serializeArray στην έκδοση 1.3 της jQuery. Αυτό λειτουργεί στην έκδοση 1.4+

Σχόλια (18)
$('#myForm').bind('submit', function () {
  var elements = this.elements,
});
Σχόλια (0)

Συνεργατικό; Όχι χωρίς λίγη δουλειά, αλλά μπορείτε να χρησιμοποιήσετε γενικούς επιλογείς:

var items = new Array();

$('#form_id:input').each(function (el) {
    items[el.name] = el;
});
Σχόλια (3)