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 domaine très important, qui devrait être posté. Existe-t-il un moyen de le sérialiser facilement via jQuery ou devrais-je écrire ma propre fonction?

Serialize inclut tous input éléments d’ input activés avec un atsortingbut name .

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 ça a fonctionné. mais, $ (“form”). serialize (); devrait 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 contenant tous les champs masqués. Mais

 $.post('myposts.php', $("#myForm").serialize(), function(data) { $('#myResult').html(data); }); 

N’a pas les champs cachés. Lorsque le script php effectue print_r($_POST) les print_r($_POST) et les cases à cocher sont erronés

Je me suis juste heurté à ce problème et j’ai piraté une solution.

Le problème est lié à la manière 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 append un nom à tous les éléments pour que la fonction sérialisation 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 fonctionnait pas lorsqu’elle était fermée de cette manière.

  

ne marche pas.

  

fonctionne.