2010-05-18 4 views
2

Je suis à la recherche d'une fonction jQuery ou plug-in qui sérialise entrées de formulaire à un objet en utilisant la convention de nommage pour-sérialisation profond soutenu par param() dans jQuery 1.4:Vous cherchez un plugin jquery pour sérialiser une forme à un objet

<form> 
    <input name="a[b]" value="1"/> 
    <input name="a[c]" value="2"/> 
    <input name="d[]" value="3"/> 
    <input name="d[]" value="4"/> 
    <input name="d[2][e]" value="5"/> 
</form> 

$('form').serializeObject(); // { a: { b:"1",c:"2" }, d: ["3","4",{ e:"5" }] } 

La méthode Form.serialize de Prototype peut faire exactement cela. Quel est l'équivalent de jQuery? J'ai trouvé this plugin mais il ne suit pas cette convention de nommage.

Répondre

3

Comme il ne semble pas y avoir de bibliothèques existantes qui a accompli ce que je cherchais, je purée des morceaux de quelques bibliothèques existantes qui a fait des choses semblables:

  • La fonction jQuery.deparam de jQuery BBQ
  • La fonction jQuery.serializeObject mentionnée dans la question.

Les deux sont par Ben Alman. Merci, Ben!

Le résultat: http://gist.github.com/405448

0

essayez d'utiliser le plugin jquery form. Je ne l'ai pas testé, mais je pense que ça va résoudre votre problème

http://jquery.malsup.com/form/

+0

Je ne vois rien dans le [API] (http://jquery.malsup.com/form/#api) qui fait ce que je veux. – John

0

Vous n'avez pas besoin pluging.

$ ('form') soumettre (function() { alerte ($ (this) .serializeArray()); return false;} ).

regard sur http://api.jquery.com/serializeArray/

+0

serializeArray ne fait pas ce que j'ai demandé; il produirait [{name: "a [b]", valeur: "1"}, {nom: "a [c]", valeur: "2"}, ...]. – John

Questions connexes