Vérification de formulaire [ Javascript ] - Programmation
Marsh Posté le 17-08-2001 à 10:36:02
et c'est quoi la question ?
enfin seulement si tu veux une réponse
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)
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.
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
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.
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
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 ?
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 !!!
Marsh Posté le 17-08-2001 à 15:35:53
met ton focus() après le alert, inverse les deux ligne quoi.
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
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" );
}
}
}
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>