Verifier qu'un radio button est coché

Résolu
Bonjour,
J'arrive pas a tester si un radio button est coché...

	var allerRetour=document.getElementById('allerRetour');
var aller=document.getElementById('aller');

if(aller.checked==true) {
alert('cocher');
}
}

Aller retour <input type="radio" name="aller" id="allerRetour" onClick="GereControle('allerRetour', 'retour', '1');" checked="checked"><br/>
Simple aller <input type="radio" name="aller" id="aller" onClick="GereControle('allerRetour', 'retour', '1');">


Merci de m'aider

7 réponses

  1. salut tu peux faire :

    <form>
       <label>Aller retour</label>
       <input type="radio" name="trajet" value="AR" checked="checked" />
       <br />
       <label>Aller simple</label>
       <input type="radio" name="trajet" value="AS" />
       <br />
    
      </form>
      <script type="text/javascript">
       var trajets = document.getElementsByName("trajet");
       trajets[0].onclick = function(){
        alert("cocher");
       }
      </script>
    


    si tu veux vraiment vérifier qu'il est coché

    <form>
    			<label>Aller retour</label>
    			<input type="radio" name="trajet" value="AR" checked="checked" />
    			<br />
    			<label>Aller simple</label>
    			<input type="radio" name="trajet" value="AS" />
    			<br />
    
    		</form>
    		<script type="text/javascript">
    			var trajets = document.getElementsByName("trajet");
    			trajets[0].onclick = function(){
    				if(this.value == "AR" && this.checked){
    					alert("cocher")
    				}
    			}
    		</script>
    

    (¯'·.¸¸.·'¯'·.¸¸.-> <-.¸¸.·'¯'·.¸¸.·'¯)
    0
    1. non mauvais exemple désolé

      <form>
      			<label>Aller retour</label>
      			<input type="radio" name="trajet" value="AR" checked="checked" />
      			<br />
      			<label>Aller simple</label>
      			<input type="radio" name="trajet" value="AS" />
      			<br />
      			<input type="submit" id="sub" />
      		</form>
      		<script type="text/javascript">
      			var trajets = document.getElementsByName("trajet");
      			var sub = document.getElementById("sub");
      			sub.onclick = function() {
      				if (trajets[0].value == "AR" && trajets[0].checked) {
      					alert("cocher")
      				}
      			}
      		</script>
      

      0
      1. Bonjour,

        Merci de votre réponse, cependant cela ne fonctionne pas...

        function validerAnnonce(){
        var aller = document.getElementsByName("aller");
        var envoi = document.getElementById("envoi");

        envoi.onclick = function() {
        if (aller[0].value == "allerRetour" && aller[0].checked) {
        alert("cocher");
        return false;
        }
        }
        }


          Aller retour <input type="radio" name="aller" id="allerRetour" onClick="GereControle('allerRetour', 'retour', '1');" checked="checked"><br/>
        Simple aller <input type="radio" name="aller" id="allerSimple" onClick="GereControle('allerRetour', 'retour', '1');">
        <p><center><input name="envoi" type="submit" id='envoie' value="Valider" /></center></p><br/>


        Configuration: Windows 7 / Chrome 32.0.1700.107
        0
    2. chez moi ça fonctionne... tu as essayé de faire

      alert (document.getElementbyId("aller").checked); ?

      tu verra peut-être d'ou vient le problême.
      0
      1. Le mien ne fonctionne pas :

        <script>
        function validerAnnonce(){
        var aller = document.getElementsByName("aller");
        var envoi = document.getElementById("envoi");

        envoi.onclick = function() {
        if (aller[0].value == "allerRetour" && aller[0].checked) {
        alert("cocher");
        return false;
        }
        return true;
        }
        }
        </script>

        <form action="index.php" onclick="return validerAnnonce();">
        Aller retour <input type="radio" name="aller" id="allerRetour" value="allerRetour" onClick="GereControle('allerRetour', 'retour', '1');" checked="checked"><br/>
        Simple aller <input type="radio" name="aller" id="allerSimple" value="allerSimple" onClick="GereControle('allerRetour', 'retour', '1');">
        <p><center><input name="envoi" type="submit" id='envoie' value="Valider" /></center></p><br/>

        </form>
        0
    3. salut,

      si je prends ton code :

      dans tes inputs type radio tu appelle une fonction GereControle

      mais ton code se trouve dans function validerAnnonce(){

      je te conseil de lire cela http://fr.openclassrooms.com/informatique/cours/dynamisez-vos-sites-web-avec-javascript/la-portee-des-variables-1

      Ensuite si tu souhaite que ton formulaire ne soit pas validé si la case est coché et qu'il le soit si elle ne l'est pas tu pourrais faire cela :

      il faut mettre le javascript a la fin de la page, juste avant la balise fermante body

       <body>
      
      		<form action="index.php" id="formulaire" method="post">
      			<label for="allerRetour">Aller retour</label>
      			<input type="radio" name="aller" id="allerRetour" value="allerRetour"  checked="checked" />
      			<br/>
      			<label for="allerSimple">Simple aller</label>
      			<input type="radio" name="aller" id="allerSimple" value="allerSimple" />
      
      			<input type="submit" id='envoi' value="Valider" />
      
      			<br/>
      
      		</form>
      		<script type="text/javascript">
      			// on définit les variables
      			var aller = document.getElementsByName("aller");
      			var form = document.getElementById("formulaire");
      			var envoi = document.getElementById("envoi");
      			//on fait une fonction de compatibilité entre navigateurs
      			function evenement(el, event, func) {
      				if (el.addEventListener) {
      					el.addEventListener(event, func, false);
      				} else {
      					el.attachEvent('on' + event, func);
      				}
      			}
      
      			//on utilise addEventListener
      			evenement(envoi, 'click', function(e) {
      				if (aller[0].value == "allerRetour" && aller[0].checked) {
      					alert("cocher et pas de validation");
      					e.preventDefault();
      					// on empeche la validation
      				} else {
      					alert("envoi du formulaire");
      					form.submit();
      					// on valide le formulaire
      				}
      			});
      		</script>
      	</body>
      


      (¯'·.¸¸.·'¯'·.¸¸.-> <-.¸¸.·'¯'·.¸¸.·'¯)
      0
      1. Bonjour merci de votre réponse , et donc en faisant cela, ma fonction appeler :
        onClick="GereControle('allerRetour', 'retour', '1')"; marcherai t'elle toujours ? (ou bien faut-il passé egalement pas addEventListener ??

        Merci
        0
    4. salut en fait tu souhaite ouvrir une pop up lorsque l'on clique quelque part dans le formulaire ?

      Donne voir tout ton code (enfin ce qui est nécéssaire ) pour que l'on comprenne mieux a quoi sert GereControle
      0
      1. GereControle permet de montrer ou cacher une div en fonction du choix du radio button :

        // ==================
        // Activations - Désactivations
        // ==================
        function GereControle(Controleur, Controle, Masquer) {
        var objControleur = document.getElementById(Controleur);
        var objControle = document.getElementById(Controle);
        if (Masquer=='1')
        objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden';
        else
        objControle.disabled=(objControleur.checked==true)?false:true;
        return true;
        }
        0
    5. je pense que cela devrait fonctionner...essaye et si sa fonctionne pas on essaira de faire pour :)
      0
      1. Bonjour,
        Quand je l'adapte a mon code ça beug ..

        <script type="text/javascript">
        // on définit les variables
        var aller = document.getElementsByName("aller");
        var form = document.getElementById("annonce");
        var envoi = document.getElementById("envoi");
        //on fait une fonction de compatibilité entre navigateurs

        function evenement(el, event, func) {
        if (el.addEventListener) {
        el.addEventListener(event, func, false);
        } else {
        el.attachEvent('on' + event, func);
        }
        }

        //on utilise addEventListener
        evenement(envoi, 'click', function(e) {
        if (aller[0].value == "allerRetour" && aller[0].checked) {
        alert("cocher et pas de validation");
        e.preventDefault();
        // on empeche la validation
        } else {
        alert("envoi du formulaire");
        form.submit();
        // on valide le formulaire
        }
        });
        </script>

        <form name='annonce' id="annonce" method="post">
        <span>Trajet : </span><br/>
        <div class="espacement">
        Aller retour <input type="radio" name="aller" id="allerRetour" checked="checked"><br/>
        Simple aller <input type="radio" name="aller" id="allerSimple" >
        </div>
        <p><center><input type="submit" name="envoi" id='envoi' value="Valider" /></center></p><br/>
        </form>
        0
      2. il faut mettre le javascript a la fin de la page, juste avant la balise fermante body
        0
      3. ça me met l'alerte envoi du formulaire quand je coche n'importe laquelle :(
        0
      4. c'est normal tu n'a pas mis de value dans les radio

        http://pour-ccm.zz.mu/ccm.html
        0
      5. Merci , j'ai envie réussi grâce a votre aide !
        0