siriu Posted November 21, 2010 Share Posted November 21, 2010 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 Link to comment Share on other sites More sharing options...
Aenoa Posted November 21, 2010 Share Posted November 21, 2010 essaye d'insérer un deuxième bouton radio avec la même value, mais en hidden. Link to comment Share on other sites More sharing options...
Ernestine Posted November 21, 2010 Share Posted November 21, 2010 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;} Link to comment Share on other sites More sharing options...
siriu Posted November 21, 2010 Author Share Posted November 21, 2010 Ça fonctionne parfaitement Merci à vous pour la solution et aussi pour l'explication Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now