10
votes

jQuery: former des champs sérialisez, des champs cachés et non affichés

J'utilise $ (ceci). Sériorize () lors de la soumission d'un formulaire.

Ça fonctionne bien, sauf dans les moments où je (pour une raison quelconque) avoir 2 champs avec le même nom ( un visible, et on ne parle pas, et je ne parle pas de type = "visible" mais affichage: Aucun ) ...

mais bien sûr Serialize n'a aucun respect pour cela ... il les prends tout simplement tous.

J'ai essayé ceci xxx

et il est Résoudre mon problème, sauf le sélecteur caché, prend également de type = "caché"

Quelle est la bonne façon?


0 commentaires

3 Réponses :


0
votes
var $disabled_list = $(this).find('input:hidden,select:hidden,textarea:hidden').not('input[type=hidden]').attr('disabled', 'disabled');
tried this way and it seems to work

0 commentaires

25
votes

Vous ne devez pas appeler Serialize () sur le lui-même, vous pouvez correspondre à certaines de ses contrôles et l'appeler sur l'ensemble résultant. Cela vous permet d'éviter de bricoler avec des attributs désactivés .

Puisque vous voulez des contrôles correspondant : masqué uniquement s'ils exposent également le type caché , vous pouvez utiliser le sélecteur suivant: xxx


0 commentaires

4
votes

Vous pouvez utiliser $ form.find (': visible'). Serialize ()


0 commentaires