Je voudrais obtenir le même effet que jQuery.serialize()
mais je voudrais ne renvoyer que les éléments enfants d'un donné div
.
Exemple de résultat:
single=Single2&multiple=Multiple&radio=radio1
jquery
serialization
BrokeMyLegBiking
la source
la source
$("#divId").find("select, textarea, input").serialize();
meilleures performances? J'imagine que ce qui précède pourrait devenir lent si le div avait beaucoup d'éléments, comme un tableau avec plusieurs lignes / colonnes.Vous pouvez améliorer la vitesse de votre code si vous limitez les éléments que jQuery examinera.
Utilisez le sélecteur : input au lieu de * pour y parvenir.
Cela rendra votre code plus rapide car la liste des éléments est plus courte.
la source
serialize
tous les éléments de formulaire dans un fichierdiv
.Vous pouvez le faire en ciblant le div à l'
#target-div-id
intérieur de votreform
utilisation:la source
La fonction que j'utilise actuellement:
la source
Essayez aussi ceci:
la source
Et ma solution:
Afficher l'extrait de code
la source
Si ces éléments ont un nom de classe commun, on peut également utiliser ceci:
De cette façon, vous pouvez éviter la sélection de boutons, qui seront sélectionnés à l'aide du sélecteur jQuery
:input
. Bien que cela puisse également être évité en utilisant$('#your_div :input:not(:button)').serialize();
la source
la source
ID
dans chaque sélecteur, comme$('#divId > input, #divId > select, #divId > textarea')
:; Aussi, le>
symbole il fait référence à des éléments enfants directs ... Très inhabituel dans ce scénario ou du moins, très restrictif.