72 votes

sérialiser n'inclut pas les champs cachés

Je lance la sérialisation sur un formulaire, où l'un des champs est masqué - et c'est un champ très important, qui doit être posté. Est-il possible de le sérialiser facilement via jQuery ou devrais-je écrire ma propre fonction?

138voto

Josh Stodola Points 42410

Serialize ne comprend tous les permis input éléments avec name attribut.

2voto

Jim Schubert Points 10234

Peut-être que combiner les deux dans un seul sélecteur fonctionnerait?

 $(":input,:hidden").serialize();
 

edit: J'ai juste essayé ce qui précède et cela a fonctionné. mais, $ ("forme"). serialize (); devrait automatiquement prendre toutes les entrées comme d'autres l'ont mentionné.

1voto

Bob Points 29

Voici une variation étrange sur ce problème. Les champs cachés ont des noms.

 alert($("#myForm").serialize())
 

Ouvre 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. Quand le script php fait print_r($_POST) les cases cachées et mal cochées

1voto

KilleR Points 19

Je viens de rencontrer ce problème moi-même et de trouver une solution.

Le problème tient à la manière dont JQuery récupère les informations HTML cachées. Il ne prendra pas le texte d'un champ masqué comme valeur, vous devez utiliser la propriété value =.

Pour le définir dans JQUERY, utilisez $(field).val(yourvalue);

0voto

Cengiz Önkal Points 71

vous devez ajouter un nom à tous les éléments pour que la fonction sérialisation fonctionne correctement

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