jQuery: Désactiver Bouton de Soumission si aucune Checkbox n'est cochée
Tutoriel de Stefan Trost | Dernière mise à jour le 22/02/2023 | Créé le 31/01/2023
Parfois, nous aimerions permettre la soumission d'un formulaire uniquement si une ou au moins une case à cocher est cochée. Dans ce petit tutoriel, je voudrais vous montrer comment faire cela en utilisant JavaScript et jQuery.
Le script suivant s'assure que le bouton "Envoyer" est seulement actif ou enabled lorsqu'au moins une case à cocher (checkbox) du formulaire correspondant est sélectionnée.
HTML
Notre code HTML est un simple formulaire contenant trois cases à cocher et un bouton d'envoi:
<form action=""> <input class="cbox" type="checkbox" name="cb1" value="1"> 1 <input class="cbox" type="checkbox" name="cb2" value="2"> 2 <input class="cbox" type="checkbox" name="cb3" value="3"> 3 <input id="bt_submit" type="submit" value="Envoyer"> </form>
JavaScript/jQuery
Nous laissons le code jQuery suivant s'exécuter immédiatement après le chargement de la page HTML en utilisant $(document).ready() :
<script type="text/javascript"> $(document).ready(function() { $('#bt_submit').attr("disabled", true); $('.cbox').change(function() { $('#bt_submit').attr('disabled', $('.cbox:checked').length == 0); }); }); </script>
Tout d'abord, nous définissons notre bouton d'envoi (submit button) sur désactivé (disabled) (plus d'informations à ce sujet dans la section suivante). Après cela, nous appliquons une fonction aux cases à cocher (checkboxes) qui est appelée chaque fois qu'une case à cocher est changé. Cette fonction ajuste l'état du bouton de soumission en fonction de l'état de la sélection. Pour cela, nous vérifions que le nombre de cases à cocher sélectionnées est égal à 0 et définissons l'attribut "disabled" en fonction de cette condition.
Important: Considérez les Utilisateurs avec JavaScript désactivé
Cette fonction ne fonctionne que lorsque JavaScript est activé dans le navigateur de l'utilisateur. Il ne remplace pas une vérification de l'entrée de l'utilisateur côté serveur qui doit être effectuée en plus.
Pour cette raison, nous définissons également l'attribut "disabled" du bouton d'envoi dans notre code JavaScript et pas déjà dans le HTML, ce qui pourrait également être fait en théorie. Le bouton submit n'est initialement pas désactivé lors du chargement de la page, même si aucune case n'est cochée à ce moment. Pour les utilisateurs avec JavaScript actif, le bouton est désactivé immédiatement après le chargement, ces utilisateurs ne remarquent pas que le bouton était autrefois actif. Pour les utilisateurs avec JavaScript désactivé, le code JavaScript ne peut pas être exécuté. Le bouton reste actif pour ces utilisateurs et le formulaire utilisable. Si nous avions immédiatement mis le bouton sur désactivé via HTML, le formulaire ne serait pas utilisable pour ces utilisateurs.
Sur l’Auteur
Vous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil
Sujets Connexes
HTML: Préaffecter un Formulaire HTML avec des Données
Tutoriel | 0 Commentaires
VirtualBox: Changer la Date et l'Heure
Tutoriel | 10 Commentaires
JavaScript: Capturer l'Envoi d'un Formulaire
Tutoriel | 0 Commentaires
PHP: Transférer Formulaire avec des nombreuses Cases à Cocher vers un Script confortablement
Conseil | 2 Commentaires
Delphi/Lazarus: Résultat de ShowModal
Conseil | 0 Commentaires
jQuery: Y a-t-il un Élément?
Conseil | 1 Commentaire
JavaScript: Comment changer et lire une valeur d'input sans jQuery à l'aide de JavaScript pur
Question | 1 Réponse
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
Et si vous n'avez qu'une seule checkbox, c'est encore plus simple à mettre en place:
Dans this.checked, il est stocké, que la case à cocher cliquée soit sélectionnée ou non.
En utilisant !this.checked, nous pouvons définir notre bouton de submit exactement à l'opposé.
05/02/2023 à 16:55
Je ne suis pas un expert en JavaScript, mais je voudrais demander à quoi tout cela ressemble lorsqu'il faut cliquer sur deux cases à cocher avant d'activer le bouton d'envoi?
19/02/2023 à 20:28
Voulez-vous dire quelque chose comme ça:
Vos cases à cocher doivent toutes deux avoir la classe "cbox" et une case à cocher l'ID "cbox1" et l'autre l'ID "cbox2".
19/02/2023 à 22:13
Ici:
C'est la solution correcte complète.
21/02/2023 à 22:12
Oui, c'était ça.
Merci beaucoup pour l'aide super rapide!
22/02/2023 à 17:31