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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Souci avec javascript sur controles de saisie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Souci avec javascript sur controles de saisie

n°1736546
axelandre
Posté le 24-05-2008 à 02:22:16  profilanswer
 

Bonsoir à tous,
 
Je m'arrache les cheveux sur un script que je n'arrive pas à faire fonctionner.
 
J'ai un formulaire sur lequel je souhaite effectuer des controles en javascript mais ils ne fonctionnent pas.
 
Alors j'ai créé différentes fonctions situées dans un meme fichier "formulaire.js".
 
Voici mon formulaire à controler :
 

Code :
  1. <form method="post" action="index.php?accueil=verification&verification=ajoutpersonne" name="ajoutpersonne"  onSubmit="return validation(this);">
  2.  <tr>
  3.   <td>Que voulez-vous ajouter : </td>
  4.   <td><input type="radio" name="type" value="eleve" onclick="ajouter(this, 'eleve');" onchange="enlever(this, 'eleve');"/> Elève &nbsp&nbsp&nbsp
  5.   <input type="radio" name="type" value="prof" onclick="ajouter(this, 'prof');" onchange="enlever(this, 'prof');"/> Professeur &nbsp&nbsp&nbsp
  6.   <input type="radio" name="type" value="admin" onclick="ajouter(this, 'admin');" onchange="enlever(this, 'admin');"/> Administrateur
  7.   </td>
  8.  </tr>
  9.  <tr>
  10.   <td><br/></td><!--------Création d'u espace entre les informations------>
  11.  </tr>
  12.  <tr>
  13.   <td>Son nom : </td>
  14.   <td><input type="text" name="nom" onChange="test_vide(this, 'Le nom manque', 'led_nom');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_nom" border="0"/></td>
  15.  </tr>
  16.  <tr>
  17.   <td>Son prénom : </td>
  18.   <td><input type="text" name="prenom" onChange="test_vide(this, 'Le prénom manque', 'led_prenom');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_prenom" border="0"/></td>
  19.  </tr>
  20.  <tr>
  21.   <td>Son adresse : </td>
  22.   <td><input type="text" name="adresse" onChange="test_vide(this, 'L'adresse manque', 'led_adresse');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_adresse" border="0"/></td>
  23.  </tr>
  24.  <tr>
  25.   <td>Ville : </td>
  26.   <td><input type="text" name="ville" onChange="test_vide(this, 'La ville manque', 'led_ville');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_ville" border="0"/></td>
  27.  </tr>
  28.  <tr>
  29.   <td>Code postal : </td>
  30.   <td><input type="text" name="cp" onChange="test_valeur(this, 'Le code postal manque', 'led_cp');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_cp" border="0"/></td>
  31.  </tr>
  32.  <!----Cette ligne sera ajoutée si le bouton radio élève est sélectionné---->
  33.  <!--display:none permet de cacher la ligne.C'est cette info que l'on va modifier grace au javascript en fonction de se que sélectionne l'utilisateur-->
  34.  <!----Appel de la fonction javascript formulaire.js---->
  35.  <tr id="eleve" style="display:none">
  36.   <td>Sa classe : </td>
  37.   <td><input type="text" name="classe" onChange="test_vide(this, 'La classe manque', 'led_classe');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_classe" border="0"/></td>
  38.  </tr>
  39.  <!----Cette ligne sera ajoutée si le bouton radio prof est sélectionné---->
  40.  <!----Appel de la fonction javascript formulaire.js---->
  41.  <tr id="prof" style="display:none">
  42.   <td>Matière enseignée : </td>
  43.   <td><input type="text" name="matiere" onChange="test_vide(this, 'La matiere manque', 'led_matiere');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_matiere" border="0"/></td>
  44.  </tr>
  45.  <!----Cette ligne sera ajoutée si le bouton radio admin est sélectionné---->
  46.  <!----Appel de la fonction javascript formulaire.js---->
  47.  <tr id="admin" style="display:none">
  48.   <td>Son statut : </td>
  49.   <td><input type="text" name="statut" onChange="test_vide(this, 'Le statut manque', 'led_statut');"/>&nbsp&nbsp&nbsp;<img src="./images/correct.jpg" name="led_statut" border="0"/></td>
  50.  </tr>
  51.  <tr>
  52.   <td><br/></td><!--------Création d'u espace entre les informations------>
  53.  </tr>
  54.  <tr>
  55.   <td colspan="2" align="center"><input type="submit" value="AJOUTER"/></td>
  56.  </tr>
  57. </form>


 
 
Et maintenant voici mon code javascript permettant d'effectuer les controles :
 

Code :
  1. //CONTROLE SUR LE CHOIX DE LA PERSONNE
  2. function enlever(btn, champ)
  3. {
  4. if(btn.unchecked)
  5. {
  6.  document.getElementById(champ).style.display="inline";
  7. }
  8. else
  9. {
  10.  document.getElementById(champ).style.display="none";
  11. }
  12. }
  13. function ajouter(btn, champ)
  14. {
  15. if(btn.checked)
  16. {
  17.  document.getElementById(champ).style.display="inline";
  18. }
  19. else
  20. {
  21.  document.getElementById(champ).style.display="none";
  22. }
  23. }
  24. //DECLARE LE TABLEAU CONTENANT LES VALEURS DES LED
  25. function init()
  26. {
  27. flag = new array(8);
  28. flag['led_nom'] = false;
  29. flag['led_prenom'] = false;
  30. flag['led_adresse'] = false;
  31. flag['led_ville'] = false;
  32. flag['led_cp'] = false;
  33. flag['led_classe'] = false;
  34. flag['led_matiere'] = false;
  35. flag['led_statut'] = false;
  36. document.forms[0].nom.select();
  37. document.forms[0].nom.focus();
  38. }
  39. //TEST SI CHAMP VIDE OU NON
  40. function test_vide(champ, texte, led)
  41. {
  42. with(champ) //Pour le champ en parametre
  43. {
  44.  if(document.formulaire.champ.value == null || document.formulaire.champ.value == '') //si valeur numérique est null  ou si pas de caractère alors
  45.  {
  46.   document.formulaire.images[led].src="incorrect.jpg"; //met la led à incorrect
  47.   flag[led] = false; //mémorise le champs faux pour ce champ
  48.   if(texte != '') //si il y a du texte alors tu l'affiche(ici ca affichera le texte de base
  49.   {
  50.    alert(texte);
  51.    document.formulaire.champ.focus();
  52.   }
  53.   champ.select(); //resélectionne le champ
  54.   champ.focus(); //resélectionne le contenu
  55.   return false; //retourne faux
  56.  }
  57.  else //sinon
  58.  {
  59.   flag[led] = true; //mémorise ok pour ce champ
  60.   document.images[led].src="correct_vert.jpg"; //passe le flag en correct_vert
  61.   return true; //retourn vrai
  62.  }
  63. }
  64. }
  65. //CONTROLE SUR LES CHAMPS NUMERIQUES
  66. function test_valeur(champ, texte, param, led)
  67. {
  68. with(champ)
  69. {
  70.  valeur = lenght(value); //lie la valeur et compare la avec la valeur entrée en paramètre
  71.  texte = parseInt(value); //permet de vérifier si il y a du texte. Car si c'est le cas alors texte aura pour valeur "0" puisque le texte à pour valeur numérique 0.
  72.  if( valeur != param ||  value != valeur)
  73.  {
  74.   document.images[led].src="incorrect.jpg";
  75.   flag[led] = false;
  76.   if(texte != "" )
  77.   {
  78.    alert(texte);
  79.   }
  80.   champ.select();
  81.   champ.focus();
  82.   return false;
  83.  }
  84.  else
  85.  {
  86.   flag[led] = true;
  87.   document.images[led].src="correct_vert.jpg";
  88.   return true;
  89.  }
  90. }
  91. }
  92. //CONTROLE SUR ADRESSE EMAIL
  93. function test_email(champ, texte, led)
  94. {
  95. with(champ)
  96. {
  97.  apos = value.indexOf("@" ); //cherche la position de l'arobase
  98.  dotpos = value.lastIndexOf("." ); //cherche la position du point
  99.  lastpos = value.lenght-1; //controle si l'adresse est vraissemblable
  100.  if(apos < 1 || dotpos-apos < 2 || lastpos-dotpos > 3 || lastpos-dotpos < 2)
  101.  {
  102.   document.images[led].src="incorrect.jpg";
  103.   flag[led] = false;
  104.   if(texte != "" )
  105.   {
  106.    alert(texte);
  107.   }
  108.   champ.select();
  109.   champ.focus();
  110.   return false;
  111.  }
  112.  else
  113.  {
  114.   flag[led] = true;
  115.   document.images[led].src="correct_vert.jpg";
  116.   return true;
  117.  }
  118. }
  119. }
  120. function validation(champ)
  121. {
  122. with(champ)
  123. {
  124.  if(test_vide(nom, 'Veuillez indiquer le nom', 'led_nom') == false)
  125.  {
  126.   nom.select(); nom.focus(); return false;
  127.  }
  128.  if(test_vide(prenom, 'Veuillez indiquer le prénom', 'led_prenom') == false)
  129.  {
  130.   prenom.select(); prenom.focus(); return false;
  131.  }
  132.  if(test_vide(adresse, 'Veuillez indiquer l\'adresse', 'led_adresse'))
  133.  {
  134.   adresse.select(); adresse.focus(); return false;
  135.  }
  136.  if(test_vide(ville, 'Veuillez indiquer la ville', 'led_ville') == false)
  137.  {
  138.   ville.select(); ville.focus(); return false;
  139.  }
  140.  if(test_valeur(cp, 'Veuillez indiquer le code postal', 'led_cp'))
  141.  {
  142.   cp.select(); cp.focus(); return false;
  143.  }
  144.  if(test_vide(classe, 'Veuillez indiquer la classe de l\'élève', 'led_classe'))
  145.  {
  146.   classe.select(); classe.focus(); return false;
  147.  }
  148.  if(test_vide(matiere, 'Veuillez indiquer la matiere qu\'enseigne le professeur', 'led_matiere'))
  149.  {
  150.   matiere.select(); matiere.focus(); return false;
  151.  }
  152.  if(test_vide(statut, 'Veuillez indiquer le statut de du nouvel administrateur', 'led_statut'))
  153.  {
  154.   statut.select(); statut.focus(); return false;
  155.  }
  156.  return true;
  157. }
  158. }


 
 
Alors, les deux première vérification, c'est à dire celles qui controle les boutons "radio" fonctionnent mais pour ce qui est du reste pas moyen de trouver d'où vient le problème.
 
Si quelqu'un a une solution à mon problème je suis preneur !
 
Merci par avance de votre aide.

mood
Publicité
Posté le 24-05-2008 à 02:22:16  profilanswer
 

n°1736656
axelandre
Posté le 24-05-2008 à 17:58:27  profilanswer
 

Personne pour m'aider???? Please...


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

  Souci avec javascript sur controles de saisie

 

Sujets relatifs
[Java/Jsp] Changer valeur d'une zone de saisie ?Recherche javascript: une sorte de "line selector"
Fonction Javascript qui ne fonctionne pas sous IE 6 et 7[conception] souci de choix pour une appli client/serveur
masque de saisie js avec boucle phpCréer un cadre de saisie avec SDL ou autre ?
Transformation XSLT en JavascriptProblème javascript et css sur texte défilant
Soucis avec du javascript sur formulaireJavascript, questions sur les 'class'
Plus de sujets relatifs à : Souci avec javascript sur controles de saisie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR