Partage
  • Partager sur Facebook
  • Partager sur Twitter

Groupe de checkbox, dont l'un est requis

Sujet résolu
    20 janvier 2015 à 16:05:25

    Bonjour, j'aimerais savoir sans utiliser JS, s'il existe une méthode pour que dans un groupe de checkbox, au moins un (n'importe lequel) doit être coché.
    • Partager sur Facebook
    • Partager sur Twitter

    La doc est la bible du développeur !

      20 janvier 2015 à 16:22:37

      Tu as mal lu ma question, je ne veux pas coché une checkbox, je veux que lors du clic sur le submit, l'utilisateur DOIT AU MOINS choisir une checkbox.
      • Partager sur Facebook
      • Partager sur Twitter

      La doc est la bible du développeur !

        20 janvier 2015 à 16:27:46

        Je ne pense pas que ce soit possible en html5 pur, il va falloir sans doute passer par JS
        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2015 à 16:29:51

          Salut, essaie avec le paramètre required
          • Partager sur Facebook
          • Partager sur Twitter
          Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
            20 janvier 2015 à 16:30:28

            Je m'en douter mais je voulais savoir au cas où (pour éviter de code la fonction, si elle existe déjà :p).
            • Partager sur Facebook
            • Partager sur Twitter

            La doc est la bible du développeur !

              20 janvier 2015 à 16:33:10

              Oui dsl, je trouvais la question un peu simpliste aussi.

              Donc soit en JS ou langage serveur pour bien vérifier si une valeur à été renvoyée.

              Mais bon par définition si l'utilisateur doit forcément avoir fait un choix, alors c'est sur le type radio qu'il faut regarder, les checkbox laissent justement cette liberté de rien remplir, chaque type à son usage.

              • Partager sur Facebook
              • Partager sur Twitter
                20 janvier 2015 à 16:34:09

                romain51 a écrit:

                Salut, essaie avec le paramètre required

                Peux-tu préciser ta pensée ?



                • Partager sur Facebook
                • Partager sur Twitter

                La doc est la bible du développeur !

                  20 janvier 2015 à 16:36:02

                  Non, Lucky13, je ne veux pas recréer des boutons radios.

                  Je veux que l'utilisateur doit choisir AU MOINS l'une (=n'importe laquelle) des checkboxes

                  • Partager sur Facebook
                  • Partager sur Twitter

                  La doc est la bible du développeur !

                    20 janvier 2015 à 16:38:47

                    Raidez a écrit:

                    romain51 a écrit:

                    Salut, essaie avec le paramètre required

                    Peux-tu préciser ta pensée ?



                    C'est fais la fonction voulu mais je viens de voir c'est dépendant d'une seul case après le test devra se faire en php (voir js ou  autre language) car en HTML/CSS tu ne peux traiter l'information

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
                      20 janvier 2015 à 16:41:02

                      Suis-je vraiment le seul à avoir penser à cette question, pour quelle ne soit pas inclut en HTML pure ?
                      • Partager sur Facebook
                      • Partager sur Twitter

                      La doc est la bible du développeur !

                        20 janvier 2015 à 16:52:08

                        Oui, au risque de te déplaire chaque type à un sens et son propre comportement. Tout est bien pensé. Perso si je me trouve devant un formulaire avec des checkbox je comprend que j'ai le choix de répondre ou non. Par contre avec des radio la je sais qu'il faut faire un choix.

                        Ton idée étrange, imagine un tel comportement pour un formulaire de devis en ligne.

                        -
                        Edité par Lucky13 20 janvier 2015 à 20:15:49

                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 janvier 2015 à 17:00:45

                          Le contexte est-t-elle que l'utilisateur doit coché au moins une case mais n'importe laquelle.

                          L'utilisateur doit choisir un groupe d'utilisateur a qui son écrit sera affiché, mais si il ne coche rien alors personne ne verra l'écrit o_O.

                          MAIS je ne peux pas mettre de boutons radios sinon, il sera forcé de diffuser l'écrit qu'a un seul groupe :o.

                          Solution  :magicien: ?

                          Non :'(

                          • Partager sur Facebook
                          • Partager sur Twitter

                          La doc est la bible du développeur !

                            20 janvier 2015 à 17:25:01

                            Je vais le faire en JS, ça sera plus facile.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            La doc est la bible du développeur !

                              20 janvier 2015 à 19:44:38

                              Bonsoir,

                              Ou alors tu mets autant de couples de boutons radios oui/non que de groupes possibles, ce qui permet d'en choisir aucun, 1 ou plusieurs.

                              • Partager sur Facebook
                              • Partager sur Twitter
                              "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                21 janvier 2015 à 7:56:46

                                Oui, mais ça ne répond pas à ma problématique, puisque l'utilisateur doit au moins choisir un groupe.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                La doc est la bible du développeur !

                                  21 janvier 2015 à 9:20:45

                                  Ah oui, pardon.

                                  Alors JS obligatoire pour faire cette opération de vérification logique.

                                  Le CSS lui ne "pense" pas...

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                    21 janvier 2015 à 10:05:50

                                    Bah ensuite tu peux faire confiance à tes utilisateurs pour lire une petite note "pensez à cocher au moins une case" :p Est-il possible pour un utilisateur de modifier l'écrit par la suite ?

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                      21 janvier 2015 à 10:26:38

                                      Oui, en même temps une petite vérification complémentaire et un rappel en JS c'est pas la mer à boire:

                                      if (!(document.querySelector("#check1").checked || document.querySelector("#check2").checked || document.querySelector("#check3").checked)) {
                                      alert("Veuillez sélectionner au moins une option !");
                                      }



                                      -
                                      Edité par philiga 21 janvier 2015 à 10:27:01

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                        21 janvier 2015 à 10:42:54

                                        Ahhhhh va de retro JS-satanas :diable:.

                                        Je vais le faire en JQuery, lors de la validation du formulaire, je stop l'envoie de données puis je vérifie si une des checkboxes est coché, si oui, j'envoie les données sinon, j'affiche un p'tit alert("coché au moins une case");

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        La doc est la bible du développeur !

                                          21 janvier 2015 à 10:48:26

                                          No need of jQuery... look up...!
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                            21 janvier 2015 à 10:51:18

                                            Jquery est une bibliothèque de fonctions JavaScript. Pas besoins de charger un script de plus de 20ko pour vérifier des checkbox.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              21 janvier 2015 à 11:07:47

                                              J'utilise JQuery pour d'autre module sur mon site donc, il est déjà chargé et prêt à l'emploie.

                                              Voici mon script :

                                              $('form').submit(function(act){
                                              	act.preventDefault();
                                              	act.stopPropagation();
                                              
                                              	var oneChecked = false;
                                              
                                              	$('input:checkbox').each(function(i){
                                              		var name = $(this).prop('name');
                                              
                                              		if(name == "groups[]")
                                              			if($(this).prop('checked'))
                                              				oneChecked = true;
                                              	});
                                              
                                              	if(oneChecked)
                                              		$(this).unbind('submit').submit();
                                              	else
                                              		alert("Vous devez au moins sélectionner un groupe, sinon votre message ne sera jamais visible !");
                                              });


                                              Trouvé !

                                              -
                                              Edité par Raidez 21 janvier 2015 à 11:11:34

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              La doc est la bible du développeur !

                                                21 janvier 2015 à 11:25:35

                                                Impec, il nous restera plus qu'à désactiver JS pour passer les vérifications :), n'oublie pas de traiter le tout côté serveur une fois envoyé.

                                                Bonne continuation à toi.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  21 janvier 2015 à 11:26:07

                                                  J'ose imposer un petit point sur JS Jquery.

                                                  Certes ta bibliothèque Jquery est deja charger, ok.

                                                  Mais tu n'imagine pas la fonction qui se trouve derrière le ($) de jQuery qui pour target 3checkbox bon c'est un peu lourd.

                                                  Certes les pc de maintenant tu vas pas voir la différence mais bon. :)

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !
                                                    21 janvier 2015 à 13:16:06

                                                    @Hsuissia: Très juste; comme je l'avais déjà noté dans un autre post (http://openclassrooms.com/forum/sujet/afficher-cacher-une-div-article-sectio-par-un-clic), ça me rassure de voir que je ne suis pas le seul à remarquer qu'on abuse de JQuery.

                                                    D'autant que mon code en pur JS fait en 2 lignes d'instructions simples ce que celui en jQuery fait en 18 sachant, en outre, que chaque ligne de jQuery met en route des fonctions à interpréter d'abord en tant que code jQuery avant qu'elles puissent commencer à exécuter ce que l'on en attend...

                                                    Voir: 

                                                    http://youmightnotneedjquery.com/?hn

                                                    et aussi:

                                                    http://www.leebrimelow.com/native-methods-jquery/

                                                     De plus, si on n'utilise pas exactement la même version et le même fournisseur, on peut fort bien télécharger plusieurs librairies jQuery. (De l'intérêt de les charger toujours depuis les serveurs Google).

                                                    -
                                                    Edité par philiga 21 janvier 2015 à 13:18:07

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
                                                      21 janvier 2015 à 14:02:05

                                                      Certes mais je considère que JQuery est largement plus simple à utilisé que Pure JS.

                                                      philiga, ta fonction est incorrect selon mon contexte (le nombre de checkboxes, vérification lors du submit, puis l'envoie), je suis persuadé que re-écrire ma fonction JQuery en JS Pure ferais largement plus de ligne.

                                                      J'ai déjà fait du Pure JS, et lorsque je vois la facilité d'utilisation de JQuery (exploration du DOM, getter et setter d'un élément), le choix est rapide.

                                                      Dans mon contexte, le fait de devoir chargé l'entièreté de la bibliothèque JQuery ne pose pas de problème (d'ailleurs, il s'agit d'une exigence du client :D), puisque je dois à plusieurs moment effectuer des interactions JS.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      La doc est la bible du développeur !

                                                        21 janvier 2015 à 14:14:15

                                                        "Plus facile" Encore heureux, jQuery est un framework Javascript, et qui dit framework dit simplification du code ( Tel que Symfony2 pour PHP ( je le site lui comme tant d'autre ) )

                                                        Par contre ton $('#targetmonid').... le $ cache une fonction qui doit bien faire 200 lignes de code rien que pour trouver ton id. ( Faut pas oublier que $ est une fonction Javascript, qui fait la simplicité de jQuery )

                                                        Je dis 200 lignes mais je te laisse libre d'aller regarder par toi même.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !

                                                        Groupe de checkbox, dont l'un est requis

                                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                        • Editeur
                                                        • Markdown