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

  FORUM HardWare.fr
  Programmation

  .[ Javascript ] Je galère, un peu d'aide SVP!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

.[ Javascript ] Je galère, un peu d'aide SVP!

n°53874
shinji
Posté le 20-08-2001 à 17:03:14  profilanswer
 

Voilà mon script, il s'agit d'un formulaire qui demande des valeurs d'intervalles. Il faut donc vérifié que l'intervalle précédent existe et que la nouvelle valeur est supérieure mais y a plein de bug liés aux évènements à d'autres choses(1er intervalle 1-9 2ème:10 => erreur pour lui 10<9??)...
Je suis pas très fort en javascript, peut être que ça existe où que je me complique la vie, vous avez une idée?? MERCI
 
<html>
<head>
<script>
function chercheerreur(val,num){
   var text1;
   var text2;
   var textder;
   var numpre;
   if(val=='max'){
       if(eval("document.f1.min"+num+".value" )==''){
          return chercheerreur('min',num);
       }else{
          textder="document.f1.max"+num;
          return textder;
       }
   }else{
       if((val=='min') && (num-1>=1)){
           numpre=num-1;
           if(eval("document.f1.max"+numpre+".value" )==''){
              return chercheerreur('max',numpre);
           }else{
 
              textder="document.f1.min"+num;
              return textder;
           }
       }else{
           textder="document.f1.min"+num;
           return textder;
       }
   }
}
function verifieclick(val,num){
   var text1;
   var text2;
   var textder;
   var numpre;
   if(val=='max'){
      if(eval("document.f1.min"+num+".value" )==''){
           text1=eval("document.f1.min"+num);
           text2=eval("document.f1.max"+num);
           text2.value="";
           textder=chercheerreur(val,num);
           alert("Remplissez dans l'ordre les intervalles s'il vous plaît" );
           eval(textder+".focus()" );
      }
   }else{;
      if( (val=='min') && (num-1>=1)){
        numpre=num-1;
        if(eval("document.f1.max"+numpre+".value" )==''){
           text1=eval("document.f1.max"+numpre);
           text2=eval("document.f1.min"+num);
           text2.value="";
           textder=chercheerreur(val,num);
           alert("Remplissez dans l'ordre les intervalles s'il vous plaît" );
           eval(textder+".focus()" );
        }
      }
   }
}
function verifieblur(val,num){
   var text1;
   var text2;
   var numpre;
   if(val=='max'){
      if(eval("document.f1.min"+num+".value" )>eval("document.f1.max"+num+".value" )){
           text1=eval("document.f1.max"+num);
           text1.value="";
           alert("Valeur incorrecte" );
           text1.focus();
      }
   }else{;
      if( (val=='min') && (num>1)){
        numpre=num-1;
        if(eval("document.f1.max"+numpre+".value" )>eval("document.f1.min"+num+".value" )){
           text1=eval("document.f1.max"+numpre);
           text2=eval("document.f1.min"+num);
           text2.value="";
           alert("Valeur incorrecte" );
           text1.focus();
        }
      }
   }
}
</script>
</head>
<body>
<form name="f1" method="post" action="cartefinale.php">
Intervalle 1 <input type="text" name="min1" onfocus="verifieclick('min','1');" onblur="verifieblur('min','1');"> <input type"text" name="max1" onfocus="verifieclick('max','1');" onblur="verifieblur('max','1');"><br>
Intervalle 2 <input type="text" name="min2" onfocus="verifieclick('min','2');" onblur="verifieblur('min','2');"> <input type"text" name="max2" onfocus="verifieclick('max','2');" onblur="verifieblur('max','2');"><br>
Intervalle 3 <input type="text" name="min3" onfocus="verifieclick('min','3');" onblur="verifieblur('min','3');"> <input type"text" name="max3" onfocus="verifieclick('max','3');" onblur="verifieblur('max','3');"><br>
Intervalle 4 <input type="text" name="min4" onfocus="verifieclick('min','4');" onblur="verifieblur('min','4');"> <input type"text" name="max4" onfocus="verifieclick('max','4');" onblur="verifieblur('max','4');"><br>
Intervalle 5 <input type="text" name="min5" onfocus="verifieclick('min','5');" onblur="verifieblur('min','5');"> <input type"text" name="max5" onfocus="verifieclick('max','5');" onblur="verifieblur('max','5');"><br>
Intervalle 6 <input type="text" name="min6" onfocus="verifieclick('min','6');" onblur="verifieblur('min','6');"> <input type"text" name="max6" onfocus="verifieclick('max','6');" onblur="verifieblur('max','6');"><br>
</form>
</body>
</html>

mood
Publicité
Posté le 20-08-2001 à 17:03:14  profilanswer
 

n°53884
shinji
Posté le 20-08-2001 à 17:28:58  profilanswer
 

c clair, y a un prob, il doit appeller des fonctions quand je m'y attend pas car il m'affiche plusieurs fois le même message des fois!
Sinon y a un prob:
 8-9  
 10-   =>erreur
 
 32-41
 109-  =>erreur
 
Peut être parce que à la ligne:
eval("document.f1.min"+num+".value" )>eval("document.f1.max"+num+".value)
le eval ne retourne pas un entier donc la comparaison merde??
Comment faire?
 
Dites moi surtout si c'est pas une bonne méthode de programmation ce script parce que c'est l'un des 1er que je fais en javascript!
 
MERCI

n°53945
bignose
Posté le 20-08-2001 à 23:03:31  profilanswer
 

Essaie ça, je sais pas si c'est ce que tu voulais faire  :??: , mais bon ...
 
<html>
<head>
<script>
 function cherche_le_bon(num)
 { var  testobj, i;
 
 
  for  (i = 1;  i <= 12; i++)
  { testobj = eval('document.f1.cel' + i);
 
   if  (testobj.value != '')  return testobj;
  }
 
  return  document.f1.cel1;
 }
 
 
 
 function verifieclick(obj, num)
 { var  prevobj, goodobj;
 
 
  if  (num == 1)  return;
 
  prevobj = eval('document.f1.cel' + (num-1));
 
  if  (prevobj.value == '')
  { alert("Remplissez dans l'ordre les intervalles s'il vous plaît" );
 
   goodobj = cherche_le_bon();
 
   goodobj.focus();
  }
 }
 
 
 function verifieblur(obj, num)
 { var  prevobj;
 
 
  if  (num == 1)  return;
 
  prevobj = eval('document.f1.cel' + (num-1));
 
  alert("prevobj : " + prevobj.value + '\n' + 'obj : ' + obj.value);
 
  if  (parseInt(prevobj.value) > parseInt(obj.value))
  { alert("Valeur incorrecte" );
 
   obj.focus();
  }
 }
</script>
</head>
<body>
<form name="f1" method="post" action="cartefinale.php">
Intervalle 1 <input type="text" name="cel1"  onfocus="verifieclick(this, 1);"  onblur="verifieblur(this, 1);">  <input type"text" name="cel2"  onfocus="verifieclick(this, 2);"  onblur="verifieblur(this, 2);"><br>
Intervalle 2 <input type="text" name="cel3"  onfocus="verifieclick(this, 3);"  onblur="verifieblur(this, 3);">  <input type"text" name="cel4"  onfocus="verifieclick(this, 4);"  onblur="verifieblur(this, 4);"><br>
Intervalle 3 <input type="text" name="cel5"  onfocus="verifieclick(this, 5);"  onblur="verifieblur(this, 5);">  <input type"text" name="cel6"  onfocus="verifieclick(this, 6);"  onblur="verifieblur(this, 6);"><br>
Intervalle 4 <input type="text" name="cel7"  onfocus="verifieclick(this, 7);"  onblur="verifieblur(this, 7);">  <input type"text" name="cel8"  onfocus="verifieclick(this, 8);"  onblur="verifieblur(this, 8);"><br>
Intervalle 5 <input type="text" name="cel9"  onfocus="verifieclick(this, 9);"  onblur="verifieblur(this, 9);">  <input type"text" name="cel10" onfocus="verifieclick(this, 10);" onblur="verifieblur(this, 10);"><br>
Intervalle 6 <input type="text" name="cel11" onfocus="verifieclick(this, 11);" onblur="verifieblur(this, 11);"> <input type"text" name="cel12" onfocus="verifieclick(this, 12);" onblur="verifieblur(this, 12);"><br>
</form>
</body>
</html>
 
Garde à l'esprit qu'un <input type="text"... c'est du texte !!!
J'ai renommé les <input> en séquence, ça permet de toujours avoir le max ou le min précédent en (num-1) sans avoir à tester si on a affaire à un min ou à un max, ça réduit le code  :)  
 
J'espère que ça t'aide.

n°54019
shinji
Posté le 21-08-2001 à 10:58:58  profilanswer
 

Merci beaucoup, c'est qympa, c'est plus clair et je connaissait pas tout cette syntaxe, merci encore merci :) :) :)


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

  .[ Javascript ] Je galère, un peu d'aide SVP!

 

Sujets relatifs
javascript - pbleme champs File - youdontcare steupléééééééInfographie aide !!
[Javascript] parametre...[Javascript tout con] Help, je trouve po l'erreur !!!
besoin d'aide pour la création d'un site ![HTML-JavaScript] Valider un form. et résultat dans une autre fenêtre
javascript: popup[ Javascript ] Vérification de formulaire
javascript: pop upBesoin d'aide sous DirectDraw..
Plus de sujets relatifs à : .[ Javascript ] Je galère, un peu d'aide SVP!


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