444 votes

Obtenir des champs de saisie à l'aide de jQuery?

J'ai un formulaire avec plusieurs champs de saisie.

Quand j'attrape la soumettre le formulaire d'événements avec jQuery, il est possible d'obtenir tous les champs de saisie du formulaire dans un tableau associatif?

564voto

nickf Points 185423
$('#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();
    });

});

Grâce à l'astuce de Simon_Weaver, voici une autre façon vous pourriez le faire, à l'aide de serializeArray:

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

Notez que cet extrait va échouer sur <select multiple> - éléments.

Il semble que le HTML 5 entrées d'un formulaire ne fonctionne pas avec serializeArray jQuery dans la version 1.3. Cela fonctionne dans la version 1.4+

270voto

Lance Rushing Points 4376

La fin de la partie sur cette question, mais c'est encore plus facile:

$('#myForm').submit(function() {
    // Get all the forms elements and their values in one step
    var values = $('#myForm').serialize();

});

24voto

Simon_Weaver Points 31141

Le jquery.forme de plugin peut aider avec ce que les autres sont à la recherche pour cette fin sur cette question. Je ne suis pas sûr s'il est directement fait ce que vous voulez ou pas.

Il y a aussi le serializeArray fonction.

18voto

Malachi Points 385

Parfois, je trouve en obtenir un à la fois est plus utile. Pour cela, il y a ceci:

var input_name = "FirstName";
var input = $("#form_id :input[name='" + input_name "']"); 

13voto

Quentin Points 325526
$('#myForm').bind('submit', function () {
  var elements = this.elements;
});

Les éléments de la variable contiendra toutes les entrées, sélectionne, ces zones de texte et des balises html fieldsets à l'intérieur de la forme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X