J'ai essayé jQuery('#form_id').serialize()
. Cela renvoie uniquement les données de forme d'une chaîne encodée url. Est-il possible d'obtenir le formulaire de données comme un objet?
Réponses
Trop de publicités?Avez-vous essayé "serializeArray"? Qui vous donne un tableau de noms et de valeurs. Vous pourriez transformer en un objet si vous voulais:
var paramObj = {};
$.each($('#myForm').serializeArray(), function(_, kv) {
paramObj[kv.name] = kv.value;
});
(Je vais vérifier à nouveau pour voir ce que jQuery ne avec des tableaux; je pense qu'il code comme Javascript valeurs de tableau, mais je ne suis pas sûr à 100%.)
edit ah non, elle n'a pas défini de plusieurs valeurs de paramètres sous la forme de tableaux - vous obtenir la répétition du même nom. Ainsi, le faire-une-objet code devrait ressembler à ceci:
var paramObj = {};
$.each($('#myForm').serializeArray(), function(_, kv) {
if (paramObj.hasOwnProperty(kv.name)) {
paramObj[kv.name] = $.makeArray(paramObj[kv.name]);
paramObj[kv.name].push(kv.value);
}
else {
paramObj[kv.name] = kv.value;
}
});
(ou quelque chose comme ça; il pourrait sans doute être un peu serrés l'un.)
Vous pouvez prendre un coup d'oeil à la serializeArray fonction:
$('#form_id').serializeArray()
J'ai trouvé un plugin jQuery qui gère ce: jQuery.fn.formParams de JavaScriptMVC
et un blogentry qui la recouvre avec plusieurs échantillons: Jupiter24
hth