serialize n'inclut pas les champs cachés
Je lance serialize sur un formulaire, où l'un des Champs est caché - et c'est un champ très important, qui devrait être posté. Est - il possible de le sérialiser facilement via jQuery ou devrais-je écrire ma propre fonction?
6 réponses
Sérialiser est-ce que inclure tous les permis de input
d'éléments de avec name
attribut.
Peut-être que combiner les deux dans un seul sélecteur fonctionnerait?
$(":input,:hidden").serialize();
Edit: je viens d'essayer ce qui précède et cela a fonctionné. mais, $("forme").serialize(); doit automatiquement prendre toutes les entrées comme d'autres l'ont mentionné.
Voici une variation étrange sur ce problème. Les champs cachés ont des noms.
alert($("#myForm").serialize())
Affiche correctement une fenêtre avec tous les champs cachés. Mais
$.post('myposts.php', $("#myForm").serialize(), function(data) {
$('#myResult').html(data);
});
N'a pas les champs cachés. Lorsque le script php fait print_r($_POST)
les cases cachées et les cases à cocher sont mising
Juste couru dans ce problème moi-même, et piraté une solution.
Le problème a à voir avec la façon dont JQuery récupère les informations html cachées. Il ne prendra pas le texte d'un champ caché comme valeur, vous devez utiliser la propriété value=.
Pour le définir dans jQuery utilisez $(field).val(yourvalue);
Vous devez ajouter un nom à tous les éléments pour que la fonction serialize fonctionne correctement
J'ai eu ce problème aussi. Par habitude, je ferme mes champs de saisie avec />. J'ai trouvé que l'entrée cachée ne fonctionne pas lorsqu'elle est fermée de cette façon.
<input type="hidden" name="someName" value="someValue" />
Ne fonctionne pas.
<input type="hidden" name="someName" value="someValue" >
Fonctionne.