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

 


Dernière réponse
Sujet : .[ Javascript ] Je galère, un peu d'aide SVP!
shinji Merci beaucoup, c'est qympa, c'est plus clair et je connaissait pas tout cette syntaxe, merci encore merci :) :) :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
shinji Merci beaucoup, c'est qympa, c'est plus clair et je connaissait pas tout cette syntaxe, merci encore merci :) :) :)
bignose 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.
shinji 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
shinji 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>

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