Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2742 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Boucle sur formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle sur formulaire

n°1367531
jmarey
Posté le 16-05-2006 à 14:27:01  profilanswer
 

Bonjour,
 
je cherche à améliorer un contrlole de formulaire sur des boutons radios qui était comme ceci:

Code :
  1. function ControlForm()
  2. {
  3. if
  4. (
  5. (document.Form.Accueil[1].checked==false) &&
  6. (document.Form.Accueil[2].checked==false)&&
  7. (document.Form.Accueil[3].checked==false)&&
  8. (document.Form.Accueil[4].checked==false)
  9. )
  10. {alert("Oh les gars, faut cocher un choix\nQue diable !" );return false;}
  11. return true;
  12. }


en

Code :
  1. function ControlForm()
  2. {
  3. var NbFiches=document.Form.Accueil.length; // Form est le nom du formulaire et Accueil le nom des boutons
  4. for (i=1;i<=NbFiches;i++)
  5. {
  6. if (document.Form.Accueil[i].checked==false)
  7.  {
  8.  alert("Oh les gars, faut cocher un choix\nQue diable !" );
  9.  }
  10. } return false
  11. }


et cela m'ouvre 4 alertes et la dernière me redirige sur la page suivante !
Quel peut etre le problème ?
Merci pour cela
 
Alain

mood
Publicité
Posté le 16-05-2006 à 14:27:01  profilanswer
 

n°1367547
benjones
Posté le 16-05-2006 à 14:35:28  profilanswer
 

C'est normal, contrairement au 1er cas, ta 2ème fonction fait un test sur chaque bouton, tu as oublier de rétablir une opréation logique.

n°1367557
benjones
Posté le 16-05-2006 à 14:38:51  profilanswer
 

function ControlForm()
{
      var NbFiches=document.Form.Accueil.length; // Form est le nom du formulaire et Accueil le nom des boutons
      var coche=0;
      for (i=1;i<=NbFiches;i++)
          {
          if (document.Form.Accueil[i].checked)
              {
              coche++;
              }
          }
      if (coche==NbFiches)
      {
         alert("Ton message" );
      }
}

n°1367559
jmarey
Posté le 16-05-2006 à 14:39:29  profilanswer
 

et je dois m'y prendre comment ?
 
Merci

n°1367675
jmarey
Posté le 16-05-2006 à 15:41:28  profilanswer
 

Pas de conseils ?
 
Merci quand meme.
 
Alain

n°1367700
Bidem
Posté le 16-05-2006 à 15:52:07  profilanswer
 

Ce que t'a donné benjones ne te satisfait pas ?

n°1367723
jmarey
Posté le 16-05-2006 à 16:00:03  profilanswer
 

Non, je n'arrive pas à rétablir une fonction logique à la suite.
 
Merci de votre aide

n°1367799
benjones
Posté le 16-05-2006 à 16:31:48  profilanswer
 

jmarey a écrit :

Non, je n'arrive pas à rétablir une fonction logique à la suite.
 
Merci de votre aide


 
Pourrais tu être plus clair ?

n°1367800
jmarey
Posté le 16-05-2006 à 16:32:08  profilanswer
 

Voila ou j'en suis

Code :
  1. function ControlForm()
  2. {
  3. var NbFiches=document.Form.Accueil.length; // Form est le nom du formulaire et Accueil le nom des boutons
  4. for (i=1;i<=NbFiches;i++)
  5.  {
  6.  if (document.Form.Accueil[i].checked==false)
  7.    {
  8.    alert("Oh les gars, faut cocher un choix\nQue diable !" );return false;
  9.    }
  10.  else (document.Form.Accueil[i].checked==true)
  11.    {
  12.    return true;
  13.    }
  14.  break;
  15.  }
  16. }


 
sans meilleur succès
 
Encore merci

n°1367858
Bidem
Posté le 16-05-2006 à 17:02:47  profilanswer
 

benjones a écrit :

function ControlForm()
{
      var NbFiches=document.Form.Accueil.length; // Form est le nom du formulaire et Accueil le nom des boutons
      var coche=0;
      for (i=1;i<=NbFiches;i++)
          {
          if (document.Form.Accueil[i].checked)
              {
              coche++;
              }
          }
      if (coche==NbFiches)
      {
         alert("Ton message" );
      }
}


 
t'as essayé ça ?
 
EDIT : le test final n'est pas bon

Citation :

if (coche==0)
{
  alert("Ton message" );
}


Message édité par Bidem le 16-05-2006 à 17:04:30
mood
Publicité
Posté le 16-05-2006 à 17:02:47  profilanswer
 

n°1367866
jmarey
Posté le 16-05-2006 à 17:04:37  profilanswer
 

Oui, j'ai un message d'erreur javascript !

n°1367980
jmarey
Posté le 16-05-2006 à 17:43:01  profilanswer
 

Tjrs la meme erreur .......
 
Cela vient surement du 1er  " if  "
 
Je rends les armes et me tourner sur mon 1er script.......domage et encore merci

n°1368218
gatsu35
Blablaté par Harko
Posté le 16-05-2006 à 20:52:21  profilanswer
 

Merci les gars je vous remercie du magnifique code un peu crassou que vous nous avez pondu aujourd'hui
pour vous remercier, je vous poste un peu de code propre (avec les commentaires) (un double clic sur le bloc de code vous permettra de virer les chiffres puis de faire un copier/coller dans votre editeur favori sans avoir de crasses)
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2.  
  3. <html>
  4. <head>
  5.     <title>Untitled</title>
  6.     <script type="text/javascript">
  7.     function checkthisfuckingshit(form) {
  8.         var Myckb = form.getElementsByTagName("input" ); //on recupere tous les input
  9.         var ckbchecked = false; //on met une variable a false, qui deviendra true des qu'une checkbox checkee est trouvee
  10.         for (var i=0; i<Myckb.length; i++) { //on fouille tout
  11.             if (Myckb[i].name.toLowerCase()=="ouaf" && Myckb[i].checked) { //Ho une checkbox portant le nom ouaf est trouvee et elle est checkee
  12.                 ckbchecked=true;  //ho paf, checked devient true
  13.                 break; //on break ca sert a rien de continuer
  14.             }
  15.         }
  16.         if (!ckbchecked) { //aucune checkbox n'a ete trouvee
  17.             alert("tu n'as rien coche imbecile" ); //donc on dit boujour
  18.             return false; //et on lui renvoi fuck, a noter le return sur le onsubmit afin de bien dire au form : "non tu fais rien"
  19.         }
  20.     }
  21.     
  22.     
  23.     </script>
  24. </head>
  25.  
  26. <body>
  27.  
  28.  
  29. <form action="fuckme.php" onsubmit="return checkthisfuckingshit(this)">
  30. <input type="checkbox" name="ouaf">
  31. <input type="checkbox" name="ouaf">
  32. <input type="checkbox" name="ouaf">
  33. <input type="checkbox" name="ouaf">
  34. <input type="checkbox" name="ouaf">
  35. <input type="checkbox" name="notouaf">
  36. <input type="submit" value="Ho Oui continue">
  37.  
  38. </form>
  39. </body>
  40. </html>


Message édité par gatsu35 le 16-05-2006 à 20:53:32
n°1368279
jmarey
Posté le 16-05-2006 à 22:30:31  profilanswer
 

Merci pour ce code clair et expliqué.....
 
La variable ligne 10 correspond à quoi ?

Code :
  1. for (var i=0; i<Myckb.length; i++) { //on fouille tout


 
Merci pour tout ca

n°1368291
gatsu35
Blablaté par Harko
Posté le 16-05-2006 à 23:01:03  profilanswer
 

var Myckb = form.getElementsByTagName("input" );
cette ligne renvoi un array (tableau) de pointers des éléments récupérés, danns notre cas on a un array de tous les inputs contenus dans le tableau
 
il ne nous reste plus qu'à les parcourir.
sachant que utiliser : document.Form.Accueil.length
c'est moche, vieux, pourri, et plus dans la norme, il vaut mieux utiliser des fonctions du DOM

n°1368313
jmarey
Posté le 16-05-2006 à 23:30:29  profilanswer
 

As tu vu que dans Mozila la derniere checkbox meme cochée, l'alerte s'affichée !
 
Bonne nuit à toi

n°1368321
jmarey
Posté le 16-05-2006 à 23:39:35  profilanswer
 

Le fait de prendre tous les input (le submit est aussi pris en compte, et il manque surement un chiffre supérieur ds la boucle.....mais je voudrais pas trop m'avancer.
 
a+

n°1368322
gatsu35
Blablaté par Harko
Posté le 16-05-2006 à 23:40:51  profilanswer
 

as tu veux que la derniere checkbox ne porte pas le meme nom que les autres afin de bien montrer que elle est indépendante :o

n°1368345
jmarey
Posté le 17-05-2006 à 00:00:25  profilanswer
 

Autant pour moi, la dernières boite n'a pas le meme nom......pour ca
 
Merci pour le script
 
A bientot


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Boucle sur formulaire

 

Sujets relatifs
Balayage d'enregistrements sur formulaire filtré... Est ce possible ?comment faire défiler des images en boucle sur un site ?
Passer une variable php->js dans une boucleRemplir un formulaire via un autre site
Récupération de variables en bouclesolution pour mettre en forme du texte html dans un formulaire
Envoyer les données d'un formulaire...dans un window.openProblème de perte de variable publique d'un formulaire au chargement d
[php] pb de variables dans une boucle avec un formulaireboucle et formulaire
Plus de sujets relatifs à : Boucle sur formulaire


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)