[ Javascript ] Vérification de formulaire

Vérification de formulaire [ Javascript ] - Programmation

Marsh Posté le 17-08-2001 à 10:34:02    

<html>
<head>
<script>
function verifie(val,num){
   if(val=='max'){
      if(eval("document.f1.min"+num+".value" )==''){
           alert("Remplissez d'abord la valeur minimale de l'intervalle" );
      }else{
           if(eval("document.f1.min"+num+".value" )>eval("document.f1."+val+num+".value" )){
              document.f1.+val+num+.value=;
              alert("Valeur incorrecte" );
           };
      };
   };
}
</script>
</head>
<body>
<form name="f1" method="post" action="cartefinale.php">
Intervalle 1 <input type="text" name="min1" onclick="verifie('min','1');"> <input type"text" name="max1" onblur="verifie('max','1');"><br>
Intervalle 2 <input type="text" name="min2" onclick="verifie('min','2');"> <input type"text" name="max2" onblur="verifie('max','2');"><br>
Intervalle 3 <input type="text" name="min3" onclick="verifie('min','3');"> <input type"text" name="max3" onblur="verifie('max','3');"><br>
Intervalle 4 <input type="text" name="min4" onclick="verifie('min','4');"> <input type"text" name="max4" onblur="verifie('max','4');"><br>
Intervalle 5 <input type="text" name="min5" onclick="verifie('min','5');"> <input type"text" name="max5" onblur="verifie('max','5');"><br>
Intervalle 6 <input type="text" name="min6" onclick="verifie('min','6');"> <input type"text" name="max6" onblur="verifie('max','6');"><br>
</form>
</body>
</html>

Reply

Marsh Posté le 17-08-2001 à 10:34:02   

Reply

Marsh Posté le 17-08-2001 à 10:36:02    

et c'est quoi la question ?
 
 
enfin seulement si tu veux une réponse

Reply

Marsh Posté le 17-08-2001 à 10:38:25    

Désolé, j'ai voulut rajouter la question et un mouvement malencontreus sur la touche entrée...
 
Comment faire dans le code en gras pour vider le inputtext correspondant??
Est-ce que la méthode est correcte ou il y a plus facile?
(je fais du php aussi si ça peut aider)

Reply

Marsh Posté le 17-08-2001 à 10:41:25    

pour vider un fields c'est setText("" );

Reply

Marsh Posté le 17-08-2001 à 10:52:36    

J'ai fait ça mais ça ne marche pas:
 
eval("document.f1."+val+num+".setText('')" );
 
J'ai un "document.f1.max1.setText is not a function"
Si je met des " à la place des ' , ça crée une erreur à cause de la concaténation.

Reply

Marsh Posté le 17-08-2001 à 11:43:59    

SVP ??

Reply

Marsh Posté le 17-08-2001 à 11:49:05    

t'as essayer de mettre directement document.f1.max1.setText() ?
 
hypothèse 1 : c'est à cause du eval que settext prends pas
donc
stock d'abord le resultat de eval dans un variable avant de faire un settext

Reply

Marsh Posté le 17-08-2001 à 12:00:36    

J'ai essayé direct sans le eval de mettre :
document.f1.max1.setText();
document.f1.max1.setText("" );  
document.f1.max1.setText('');
 
Dans les 3 cas j'ai "document.f1.max1.setText" n'est pas une fonction.
 
J'a iessayé avec un variable intermédiaire, ça ne marche pas non plus.

Reply

Marsh Posté le 17-08-2001 à 12:06:03    

et ça  document.f1.max1.value="";

Reply

Marsh Posté le 17-08-2001 à 12:17:31    

J'avais déjà essayé mais en fait avec le eval ça passe pas. J'ai fait comme t'as dit en passant par une variable intermédiaire pour le eval. Merci
 
PS: Comment fait on pour donner le focus à un input text?
 
Merci encore :)

Reply

Marsh Posté le 17-08-2001 à 12:17:31   

Reply

Marsh Posté le 17-08-2001 à 12:27:54    

bien pour le focus c'est  document.max1.focus();
 
 
et finalement ça marche sans le eval c'est ça ?

Reply

Marsh Posté le 17-08-2001 à 13:50:25    

Voilà mon nouveau code:
Seulement j'ai encore un dernier petit prob, c'est que sous IE, le input text si je tape une valeur max < à la valeur min le input text est effacé, un message s'affiche et il reprend bien le focus pour que je tape une nouvelle valeur mais sous Netscape, je clique sur ok et j'ai pas le temps de saisir un nouvelle valeur, il ré-affiche "mauvaise valeur"!
Comment ça se fait, pourtant onblur, c'est bien quand il perd le focus?? Il ne devrait pas déclencher la fonction.
 
<html>
<head>
<script>
function verifie(val,num){
              var doc;
   if(val=='max'){
      if(eval("document.f1.min"+num+".value" )==''){
           alert("Remplissez d'abord la valeur minimale de l'intervalle" );
      }else{
           if(eval("document.f1.min"+num+".value" )>eval("document.f1."+val+num+".value" )){
              doc=eval("document.f1."+val+num);
              doc.value="";
              doc.focus();
              alert("Valeur incorrecte" );

           };
      };
   };
}
</script>
</head>
<body>
<form name="f1" method="post" action="cartefinale.php">
Intervalle 1 <input type="text" name="min1" onclick="verifie('min','1');"> <input type"text" name="max1" onblur="verifie('max','1');"><br>
Intervalle 2 <input type="text" name="min2" onclick="verifie('min','2');"> <input type"text" name="max2" onblur="verifie('max','2');"><br>
Intervalle 3 <input type="text" name="min3" onclick="verifie('min','3');"> <input type"text" name="max3" onblur="verifie('max','3');"><br>
Intervalle 4 <input type="text" name="min4" onclick="verifie('min','4');"> <input type"text" name="max4" onblur="verifie('max','4');"><br>
Intervalle 5 <input type="text" name="min5" onclick="verifie('min','5');"> <input type"text" name="max5" onblur="verifie('max','5');"><br>
Intervalle 6 <input type="text" name="min6" onclick="verifie('min','6');"> <input type"text" name="max6" onblur="verifie('max','6');"><br>
</form>
</body>
</html>
 
Merci Grand MERCI !!!

Reply

Marsh Posté le 17-08-2001 à 15:33:07    

Plizzz???

Reply

Marsh Posté le 17-08-2001 à 15:35:53    

met ton focus() après le alert, inverse les deux ligne quoi.

Reply

Marsh Posté le 17-08-2001 à 15:52:53    

Merci Oh Grand MERCI! (je sais pas comment faire le symbole du smilie avec un chapeau chinois qui incline la tête mais je le pense)
 
ça m'énerve cette compatibilité javascript!
Tu connais un site ou y a une bonne doc avec les prob de compatibilité ou au moins une doc détaillée parce que celles que j'ai, c'est pas tip top?
Enfin merci, je sais à qui m'adresser maitenant en javascript ;)

Reply

Marsh Posté le 19-08-2001 à 04:01:24    

une autre variante serait :
 
  /***************************************/
  function verifie(val,num)
  {
    var elt = document.f1.elements;  
 
    if(val=='max')
    {  
      if(elt["min"+num].value=='')
        alert("Remplissez d'abord la valeur minimale de l'intervalle" );  
      else if(elt["min"+num].value > elt[val+num].value)
      {  
        elt[val+num].value = "";
        alert("Valeur incorrecte" );  
      }  
    }  
  }  
 
:)


---------------
"L'imagination est plus importante que la connaissance" - A. E.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed