Partage
  • Partager sur Facebook
  • Partager sur Twitter

vérifier un bouton radio avant le submit

Plusieurs méthodes testées, non concluant

Sujet résolu
    7 janvier 2011 à 17:18:21

    Bonjour à tous,

    J'essaye désespérément de trouver une méthode pour vérifier qu'un choix sur un bouton radio à bien été fait, j'ai trouvé plusieurs méthode sur le net, essayé de faire avec le peu de connaissance que j'ai en js mais rien à faire, j'en suis donc là, avec vous :)

    Voilà ma dernière tentative:
    function Valid1()
    {
    	var cible = document.getElementsByName('auth1').checked;
    	if(cible==false)
    	{
    		alert("Error: Veuillez entrer une réponse pour l'authorisation de faire soigner votre enfant");
    		  return;
    	}else{alert("ok");}
    }
    


    Code html :
    <input class="green bold cent print" onclick="Valid1();" ......
    



    Mon else{alert("ok");}, c'est parce que je n'avais pas d'erreurs, donc je voulais voir le comportement, j'ai un "ok" qui apparait, comme si le bouton était sur un des choix alors que tout mes boutons radio (2: oui et non) sont vide, aucun choix n'à été fait !

    Avez vous une piste ?
    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2011 à 17:49:42

      Salut, que vois-tu à la fin de "Elements" dans "getElementsByName" ? Oui, il s'agit bien d'un "s".

      Autrement dit, il y a plusieurs éléments... dans un tableau. Il serait bon de les parcourir un à un pour tester la propriété checked de chaque radio.
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2011 à 18:04:15

        Citation : Golmote

        Salut, que vois-tu à la fin de "Elements" dans "getElementsByName" ? Oui, il s'agit bien d'un "s".

        Autrement dit, il y a plusieurs éléments... dans un tableau. Il serait bon de les parcourir un à un pour tester la propriété checked de chaque radio.


        Bonsoir,

        Oui le s, j'avais remarqué, j'ai buté sur une erreur n'ayant pas mis ce fameux 's', j'en ai aussi déduit que par la logique, c'est qu'il y a dans ma page plusieurs bouton avec le même nom.

        Mais comment est ce que je peux tester la propriété de chaque boutons ?

        var radio1_yes = document.getElementsByName("auth1").checked;
        var radio1_non = document.getElementsByName("auth1").checked;
        if((radio1_yes != true) && (radio1_non != true))
        {
        alert("Error: Veuillez entrer une réponse pour l'authorisation de faire soigner votre enfant");
          return;
        }
        


        C'est bon un code comme ça ?
        Je rappelle que je n'ai en js aucune connaissances si ce n'est deux trois notions

        Merci de ton aide

        EDIT: ca ne semble pas logique, je sais d'avance que le code n'est pas bon... reste où...
        • Partager sur Facebook
        • Partager sur Twitter
          7 janvier 2011 à 18:12:41

          Bah... getElementsById() ça n'existe pas. Vu qu'un id est unique... donc y'a pas de "s" à "Element" dans getElementById(). ^^'

          Si tu mets des id à tous tes radios, tu peux t'en sortir comme ça, oui.


          Mais sinon, ta première méthode pouvait fonctionner... en récupérant chaque radio sachant que document.getElementsByName('auth1') est un tableau contenant tes radios.

          J'ose espérer que parmi les deux trois notions, il y a celle de récupérer un élément d'un tableau. Parce que sinon, on n'est pas sortis.
          • Partager sur Facebook
          • Partager sur Twitter
            7 janvier 2011 à 18:17:38

            Oui non, je sais ^^, je me suis embrouillé, vendredi soir, j'en ai un peu ras... ;)

            Donc si on reste sur ma 1ère méthode :

            Récupérer les éléments d'un tableau... genre
            var radio1 = document.getElementsByName("auth1");
            if((radio1[0].checked==false)&&(radio1[1].checked==false))
            {
            ...
            }
            


            ?
            Si ce n'est pas ça, alors je pense ne pas en être sorti :euh:
            • Partager sur Facebook
            • Partager sur Twitter
              7 janvier 2011 à 18:22:15

              Ca fonctionne en effet, reste un détail, je souhaite que ma page ne se valide pas si le champ n'est pas rempli... hors là elle se valide sitôt que je ferme la boite de dialogue...
              • Partager sur Facebook
              • Partager sur Twitter
                7 janvier 2011 à 20:00:17

                Ne mets pas un onclick sur l'input submit. Mets plutôt un onsubmit sur le formulaire.

                <form onsubmit="return Valid1();">
                


                Ensuite, dans la fonction, il te suffit de mettre un return false; quand tu veux bloquer l'envoi.
                • Partager sur Facebook
                • Partager sur Twitter
                  7 janvier 2011 à 20:05:02

                  J'essaye ça demain matin, j'ai déjà essayé mais j'ai du merder quelque part, tu confirme que mon idée était bonne, je te remercie beaucoup pour ton aide ;)

                  Je poste la confirmation demain et passerai mon sujet en résolu par la même...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 janvier 2011 à 11:02:20

                    Ca ne fonctionne pas :

                    - si je met le onclick dans le submit, ça vérifie mais ça valide le form même en cas d'erreurs,
                    - si je met onsubmit dans la balise form, ça valide sans même vérifier...

                    Voila mes codes :
                    function ValidRadio()
                    {
                    	var radio1 = document.getElementsByName("auth1");
                    	if((radio1[0].checked==false)&&(radio1[1].checked==false))
                    	{
                    		alert("Error: Veuillez entrer une réponse pour l'authorisation de faire soigner votre enfant");
                    		return false;
                    	}
                    
                    	var radio2 = document.getElementsByName("auth2");
                    	if((radio2[0].checked==false)&&(radio2[1].checked==false))
                    	{
                    		alert("Error: Veuillez entrer une réponse pour l'utilisation d'une éventuelle image de votre enfant");
                    		return false;
                    	}
                    
                    	var radio3 = document.getElementsByName("fumer");
                    	if((radio3[0].checked==false)&&(radio3[1].checked==false))
                    	{
                    		alert("Error: Veuillez indiquer si votre enfant à l'autorisation de fumer librement");
                    		return false;
                    	}
                    }
                    

                    le form :
                    <form name="inscription" onsubmit="return ValidRadio();" method="post" action="">
                    .......
                    		<td>Nous autorisions le ou la responsable du Centre à faire soigner notre fils, filles et à faire pratiquer les interventions d'urgence, éventuellement sous anésthésie générale, suivant les préscriptions des médecins
                    			<input type="radio" name="auth1" <?php if($resultat['autorisation_acte_medical'] == 'oui'){echo 'checked="checked"';} ?> value="oui" />Oui - 
                    			<input type="radio" name="auth1" <?php if($resultat['autorisation_acte_medical'] == 'non'){echo 'checked="checked"';} ?> value="non" />Non</td>
                    	</tr>
                    	<tr>
                    		<td>Nous autorisons l'organisateur et l'équipe d'animation à utiliser l'image de mon enfant sur support photographique ou informatique pour la présentation et l'illustration des activités de l'accueil de loisirs
                    			<input type="radio" name="auth2" <?php if($resultat['autorisation_image'] == 'oui'){echo 'checked="checked"';} ?> value="oui" />Oui - 
                    			<input type="radio" name="auth2" <?php if($resultat['autorisation_image'] == 'non'){echo 'checked="checked"';} ?> value="non" />Non</td>
                    	</tr>
                    	<tr>
                    		<td>Nous autorisons notre enfant à fumer librement
                    			<input type="radio" name="fumer" <?php if($resultat['fumer'] == 'oui'){echo 'checked="checked"';} ?> value="oui" />Oui - 
                    			<input type="radio" name="fumer" <?php if($resultat['fumer'] == 'non'){echo 'checked="checked"';} ?> value="non" />Non</td>
                    	</tr>
                    			<input class="green bold cent print" type="submit" value="Je confirme les changements !" />
                    ...
                    </form>
                    


                    EDIT : Ok, 2 secondes de réflexions ont suffit en fait, j'ai tout bêtement fais un :
                    onclick="return ValidRadio();" sur mon input type submit et ma fonction renvoie true ou false, l'envoi en dépend, tout est ok.

                    Je te remercie beaucoup pour ton aide ;)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    vérifier un bouton radio avant le submit

                    × 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