11
votes

Activer et désactiver le champ de texte si la case à cocher est cochée

J'ai un formulaire avec 2 cases à cocher et 2 sections de champs de texte d'entrée désactivés.

Si seule la première case à cocher est cochée, le champ de texte d'entrée suivant doit être activé:

  • email
  • Confirmer Email
  • Nom complet

    Si seule la deuxième case à cocher est cochée, les champs de texte d'entrée suivants doivent être activés:

    • email
    • Confirmer Email
    • couleur
    • Taille
    • modèle

      Si les deux cases à cocher sont vérifiées que tous les champs de texte d'entrée doivent être activés. Le problème que j'ai est que si les deux cases à cocher sont vérifiées, l'une est décochée. Les champs de texte 2 e-mail deviennent désactivés.

      Voici un violon à ce que j'ai. Je peux utiliser jQuery. http://jsfiddle.net/ujxkq/

      Voici mon HTML: xxx

      voici mon javascript: xxx


0 commentaires

3 Réponses :


7
votes

Au lieu de simplement basculer à chaque fois, vérifiez l'état des deux cases à cocher et décidez si chaque champ doit être activé ou désactivé en fonction de celui-ci.

Vous pouvez le simplifier à une seule fonction qui est appelée ONCLICK de l'une ou l'autre case à cocher: xxx

mises à jour est mis à jour est ici: http: //jsfiddle.net/p8gqz/1/


1 commentaires

Mieux car ne nécessite pas d'utilisation de jQuery



1
votes

J'ai changé un peu votre code une jQuery d'occasion xxx

});

violon


2 commentaires

Merci! J'ai accepté la réponse précédente avant de voir le vôtre mais merci de m'avoir montré comment le faire avec JQuery.


@MDD Je crois que vous pouvez changer la réponse acceptée si vous le souhaitez. Je ne pense pas que ce soit un bon exemple de jQuery, cependant - voir ma deuxième réponse pour un meilleur exemple de ce qui est possible ici avec JQuery.



11
votes

Vous avez marqué cette question avec jQuery, mais vous n'utilisez pas jusqu'à présent.
Voici une version qui utilise jQuery: xxx

Vous pouvez supprimer tous les attributs OnClick sur les cases à cocher elles-mêmes si vous utilisez cette version.
Le violon mis à jour pour cette version est ici: http://jsfiddle.net/tb7yz/


5 commentaires

Merci. Je n'ai pas utilisé JQuery parce que je ne pensais pas que ce serait nécessaire, même si je l'ai disponible. Désolé de marquer JQuery que si cela était déroutant.


Ce n'est pas un problème. Si vous avez déjà JQuery disponible et chargé sur la page, je préfère personnellement cette version car elle est plus compacte et supprime la logique d'application (OnClick) d'être intégrée au HTML.


Merci jcsanyi. Souhaitez-vous expliquer comment le! (CB1 || CB2) évaluta dans la fonction .prop ()? .Prop ('Disabled',! (CB1 || CB2). Je pense que je l'obtiens, mais je ne suis pas sûr de le faire.


Le .prop ('désactivé',! (CB1 || cb2)) est identique au code non-jQuery .disabled =! (cb1 || cb2) , Sauf que cela fonctionne contre les deux identifiants référencés dans la fonction $ () . || signifie ou et ! signifie pas. SO (CB1 || CB2) signifie (Cochez la case11 est cochée ou la case à cocher 2 est cochée). Qui évalue à true si la case à cocher est cochée ou false sinon. C'est à l'envers de ce dont nous avons besoin pour la propriété désactivé , nous la nions donc avec ! .


Merci jcsanyi. C'est la négation, !, Je n'étais pas tout à fait sûr. Merci! :)