Webmaster Hub: Vérification sélection bouton radio - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Vérification sélection bouton radio

#1 L'utilisateur est hors-ligne   siriu 

  • Groupe : Actif
  • Messages : 38
  • Inscrit(e) : 28-septembre 10

Posté 21 novembre 2010 - 14:10

Bonjour,

J'ai deux formulaires pour lequel j'exécute le même script afin de vérifier qu'un bouton radio à bien été sélectionne.

function saveOnlyIfSelected(form){
   var compteur = 0;
	for(i = 0; i < form.service.length; i++){
		if(form.service[i].checked) 
		{	
			compteur++;
		}
		
		if (1 <= compteur)
	   {
			return 1;
	   }
	}
	
}


Dans le formulaire ou j'ai deux boutons radio (ayant le même name "service") mon script fonctionne
En revanche dans mon formulaire ou j'ai un seul bouton radio (name "service"), ça ne fonctionne pas... il me renvoi toujours "false" même si j'ai coché le bouton radio "service"

Pouvez vous me dire ce qui ne vas pas ?
Merci pour votre aide
0

#2 L'utilisateur est hors-ligne   Aenoa 

  • Groupe : Membre+
  • Messages : 282
  • Inscrit(e) : 28-octobre 10
  • Genre:Homme
  • Localisation:Tournai
  • Société:Aucune

Posté 21 novembre 2010 - 15:46

essaye d'insérer un deuxième bouton radio avec la même value, mais en hidden.
Mon (très petit) site personnel

"Ce n'est pas parce que l'on ne sait pas, que l'on ne peut pas. L'on peut tout apprendre, avec de la motivation."
0

#3 L'utilisateur est hors-ligne   Ernestine 

  • Groupe : Fondatrice
  • Messages : 1 034
  • Inscrit(e) : 21-août 03
  • Genre:Femme

Posté 21 novembre 2010 - 17:09

Javascript a un fonctionnement différent, selon qu'il y a un seul bouton radio ou plusieurs portant le même name. En gros, s'il y en a plusieurs, il considère qu'il a un tableau, et donc la méthode .length fonctionne. Mais s'il n'y en a qu'un seul, contrairement à ce qu'on pourrait croire, le .length ne renvoie pas 1.
Donc il faut traiter les deux cas séparément :
function saveOnlyIfSelected(form){   
    if(form.service.length) {
	var compteur = 0;
        for(i = 0; i < form.service.length; i++){		
                if(form.service[i].checked)     
                        compteur++;           
                if (1 <= compteur)
                        return true;
        }
    }		
    else {
	if(form.service.checked)
         	 return true;
    }
    return false;
}

0

#4 L'utilisateur est hors-ligne   siriu 

  • Groupe : Actif
  • Messages : 38
  • Inscrit(e) : 28-septembre 10

Posté 21 novembre 2010 - 19:10

Ça fonctionne parfaitement

Merci à vous pour la solution et aussi pour l'explication ;)
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)