Verification bouton radio JAVASCRIPT

Résolu/Fermé
sluggogle - 7 nov. 2007 à 14:23
 Pseudo ... - 29 juil. 2014 à 13:13
Bonjour,

je cherche a verifier si un choix a été fait sur un bouton radio. Seulement la condition n'est pas vérifiée.

// ------ VERIFICATION FREQUENCE CONTRAT ----
for(i=0;i<3;i++)
{
if(document.formulaire.frequence[i].checked == true)
{
frequence = 1;
}
else
{
frequence = 0;
}
}
if(frequence == 0)
{alert("Veuillez choisir la frequence des visites !");
document.formulaire.frequence[i].focus();
return false;}

je ne vois pas ce qui cloche, normalement, si aucun bouton choisit (checked retourne toujours 'false' donc 'frequence = 0') je dois avoir mon message d'alert. Sinon c'est ook

4 réponses

Arsenic33
Messages postés
46
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
17 janvier 2014
42
14 août 2009 à 18:13
S'il vous plaît apprenez à coder proprement, c'est pour votre bien ;)

for(i = 0; i < document.formulaire.frequence.length; i++){
	if(document.formulaire.frequence[i].checked) return true;
}
alert("Veuillez choisir la fréquence des visites !"); 
return false;


La même chose en 5 lignes indentées sans variables inutiles
37
je n'aime pas trop cette ligne
if(document.formulaire.frequence[i].checked) return true;

si tu veux jouer au mec qui sait coder
return document.formulaire.frequence[i].checked;
0
gnié? as-tu au moins essayé ton code keime?
0
keime -> effectivement, faire un if(x==true) return true; else return false; est une erreur de débutant. Mais pas la peine de vouloir faire celui qui sait coder quand il ne sait pas lire du code. Ton truc renvoie true ou false dès la première itération de la boucle et arrête la fonction. Dès lors, l'alert ne passe même plus dans le cas où tout est faux et si jamais le premier élément est faux mais qu'il y en a un vrai par la suite, ton truc renverra quand même faux.
0
@keime -> pourquoi c'est une erreur de débutant de mettre des if et des else ? Mois je trouve ça tout simplement plus propre et lisible!
0
moi je pense qu'on peut retirer les crochets si on veut...
0
C'est bon j'ai resolu mon soucis !
1) Fallait bien sortir de la boucle si on tomber sur true ! logique mais bon...
2) Au lieu de mettre mon nombre de bouton radio dans le FOR, ca marche mieux avec document.formulaire.radio.length

// ------ VERIFICATION FREQUENCE CONTRAT ----
for(i=0;i<document.formulaire.frequence.length;i++)
{
if(document.formulaire.frequence[i].checked == true)
{
var frequence = 1;
break;
}
else
{
var frequence = 0;
}
}
if(frequence == 0)
{alert("Veuillez choisir la frequence des visites !");
return false;}

voila pour ceux que ca peut aider
1
Merci pour le post.
J'ai utilisé dans un cas similaire avec succès en utilisant quasiment tel quel.
j'avais besoin de récupérer la valeur (propriété value du composant radio),
j'ai donc codé
frequence=document.formulaire.btradio[i].value;

Cela fonctionne correctement.
Encore merci.
0
Profil bloqué
12 janv. 2011 à 15:48
Pour moi il fonctionne pas =/
pourtant j'ai copié / collé
0
@sluggogle : Merci beaucoup, ça marche nickel chrome. Je viens de tester ;-)
0
Ça ne sert à rien d'écrire
if(document.formulaire.frequence[i].checked == true)
autant écrire
if(document.formulaire.frequence[i].checked)
c'est plus rapide
0
salut
j'ai besoin de votre aide S.V.P .
j'ai un formulaire dans ma "jsp" qui contient 2 champs de texte et aussi 2 bouton radio .à l'un des 2 bouton radio j'ai associer une liste déroulante et a l'autre j'ai associer un champs de texte.
j'ai essayé que la liste ou le champs de texte ne soit active que si le bouton radio associer est checked mais j'ai pas trouver un moyen donc j'ai penser a vérifier les champs du formulaire si le bouton radio et le champ(ou la liste)associer sont remplie sinon erreur.
et je veux aussi vérifier si les deux autre champs de texte sont remplie .
je suis nulle en javascript et vraiment besoin de votre aide .si quelqu'un peut me dire comment je faire tout ça ,it will be great.
merci d'avance
1
algod
Messages postés
165
Date d'inscription
mardi 9 janvier 2007
Statut
Membre
Dernière intervention
27 mars 2022
23
7 nov. 2007 à 14:42
bonjour

J'avais le meme probleme.

On m'a donné ça comme solution :

var radioType = document.getElementsByName("Type");
var checked = false;
for (var cpt = 0 ; (cpt < radioType.length) && !checked ; cpt++) {
checked = checked || radioType[cpt].checked;
}

if (!checked) {
alert("Sélectionnez un type");
} else {
.......
}

Vois ci tu ne peux pas faire quelque chose avec.
0