Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme function validate

7 réponses
Avatar
john.swilting
je suis pas bon en javascript je debute
je ne comprends pas pourquoi ma fonction ne marche pas
je poste mon code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>contact.html</title>
<meta name="generator" content="Bluefish 1.0.7">
<meta name="author" content="swilting">
<meta name="date" content="2007-02-09T13:41:56+0100">
<meta name="copyright" content="">
<meta name="keywords" content="">
<meta name="description" content="">
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-type"
content="application/xhtml+xml; charset=UTF-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="expires" content="0">
<meta http-equiv="refresh" content="5; URL=http://">

</head>
<script type="application/x-javascript">
function validate()
{
if(document.info.nom.value=="")
{
alert("vous devez entrer votre nom.")
return false
}
if(document.info.prenom.value=="")
{
alert("vous devez entrer votre prenom.")
return false
}
if(document.info.mail.value=="")
{
alert("vous devez entrer votre mail.")
return false
}
if(document.info.body.value==")
{
alert("vous devez ecrire du texte dans le mail.")
return false
}
}

//-->
</script>
<body>

<table style="width: 100%;text-align: center;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;"><img
src="http://localhost/cgi-bin/random_image.cgi" align="middle"
border="0"><br>
</td>
</tr>
</tbody>
</table>
<br>
<hr style="width: 100%; height: 2px;"><br>
<table style="width: 100%;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;">
<form name="info" onsubmit="return validate()"
action="http://localhost/cgi-bin/mailperso.cgi" method="post"
enctype="multipart/form-data">
<br>
<hr style="width: 100%; height: 2px;"><br>
<p>vous pouvez m envoyer des e-mails personnalises pour que je travaille sur
vous idees</p>
<p>nom [obligatoire]</p>
<p></p>
<input type="text" name="nom" size="100" maxlength="100">
<p></p>
<p>prenom [obligatoite]</p>
<p></p>
<input type="text" name="prenom" size="100" maxlength="100">
<p></p>
<p>adresse mail [pas obligatoire]</p>
<input type="text" name="mail" size="100" maxlength="100">
<P>vous pouvez envoyer des images au format gif [pas obligatoire]</p>
<input type="file" name="attachement" size="50" maxlength="50">
<p>entrer le maximum d'information pour que l artiste travaille sur vos
idees</p>
<p>si vous n'avez pas remplie le champ mail indiquer votre numero de
telephone</p>
<textarea name="body" rows="5" cols="50"></textarea>
<p><input type="submit"></p>
</form><br>
</td>
</tr>
</tbody>
</table>
<br>
<br>
</body>
</html>

7 réponses

Avatar
ASM
je suis pas bon en javascript je debute
je ne comprends pas pourquoi ma fonction ne marche pas


il faut que la fonction, si tout est ok, retourne true

(snip)
function validate()
{
(re-snip)

if(document.info.body.value==")
{
alert("vous devez ecrire du texte dans le mail.")
return false
}


return true;

}


(fin-snip)


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
john.swilting
ASM wrote:

je suis pas bon en javascript je debute
je ne comprends pas pourquoi ma fonction ne marche pas


il faut que la fonction, si tout est ok, retourne true

(snip)
function validate()
{
(re-snip)

if(document.info.body.value==")
{
alert("vous devez ecrire du texte dans le mail.")
return false
}


return true;

}


(fin-snip)


déjà, je ne parviens pas à utiliser document.body, je dois prendre :


document.getElementsByTagName('body')[0]


Avatar
Olivier Miakinen

[...]
if(document.info.body.value==")
[...]


déjà, je ne parviens pas à utiliser document.body,


C'est document.body ou document.info.body ?

P.-S. : Tu devrais publier en ISO-8859-1 ou ISO-8859-15 au lieu d'UTF-8
car là tu te prives d'une grosse partie des lecteurs potentiels. Qui
sait si celui qui aura LA réponse à ta question la plus importante n'est
pas client de Free, de Galacsys, ou de tout autre FSI filtrant l'UTF-8 ?



Avatar
ASM
ASM wrote:

function validate()
{
(re-snip)

if(document.info.body.value==")




if(document.info.body.value == '')

{
alert("vous devez ecrire du texte dans le mail.")
return false
}


return true;

}
(fin-snip)



déjà, je ne parviens pas à utiliser document.body



Je ne vois pas ce que vient faire document.body
pour le problème exposé

ceci étant, dans ta fonction vérifie bien que les if(condition) sont
corrects

il faut :
if ( truc == '')
et non pas :
if( truc == ")
ce sont deux '
et non pas un seul "



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé



Avatar
john.swilting
ASM wrote:

ASM wrote:

function validate()
{
(re-snip)

if(document.info.body.value==")




if(document.info.body.value == '')

{
alert("vous devez ecrire du texte dans le mail.")
return false
}


return true;

}
(fin-snip)



déjà, je ne parviens pas à utiliser document.body



Je ne vois pas ce que vient faire document.body
pour le problème exposé

ceci étant, dans ta fonction vérifie bien que les if(condition) sont
corrects

il faut :
if ( truc == '')
et non pas :
if( truc == ")
ce sont deux '
et non pas un seul "



maintenant le fonction marche mais elle bascule sur le formulaire dans tout

les cas
est je ne veux pas de se comportement
je veux pas que ça bascule sur le formulaire si touts les champs ne sont pas
remplies
comment faire




Avatar
john.swilting
john.swilting wrote:

ASM wrote:

ASM wrote:

function validate()
{
(re-snip)

if(document.info.body.value==")




if(document.info.body.value == '')

{
alert("vous devez ecrire du texte dans le mail.")
return false
}


return true;

}
(fin-snip)



déjà, je ne parviens pas à utiliser document.body



Je ne vois pas ce que vient faire document.body
pour le problème exposé

ceci étant, dans ta fonction vérifie bien que les if(condition) sont
corrects

il faut :
if ( truc == '')
et non pas :
if( truc == ")
ce sont deux '
et non pas un seul "



maintenant le fonction marche mais elle bascule sur le formulaire dans

tout les cas
est je ne veux pas de se comportement
je veux pas que ça bascule sur le formulaire si touts les champs ne sont
pas remplies
comment faire
je savais bien que c etait return false qui falait


ça marche maintenat
merci





Avatar
ASM

maintenant le fonction marche mais elle bascule sur le formulaire dans
tout les cas
est je ne veux pas de se comportement
je veux pas que ça bascule sur le formulaire si touts les champs ne sont
pas remplies



pas ni compris quoi toi dire.
La fonction est censée alerter dès qu'une entrée a été omise et doit
s'arrêter là en empêchant l'envoi du formulaire.

comment faire



Si tu veux qu'on soit alerté à chaque entrée oubliée, mais ne revenir au
formulaire qu'en fin de boucle, c'est une mauvaise idée.

je savais bien que c etait return false qui falait


il faut return false associé à chaque condition non satisfaite
ce qui arrête la fonction
et il faut return true en toute fin de fonction

idéalement :

function verif(what) {
var f = what.elements;
for(i=0; i<f.length; i++)
{
if(f[i].type == 'text')
{
// remise de la bordure en mode par défaut
f[i].style.border = '';
// contrôle de validité
if ( f[i].value == '' || f[i].value.length<1 )
{
alert('Le champ : '+f[i].name+'nn'a pas été complété');
// scroll de la page jusqu'au champ pas rempli
f[i].focus();
// mise en relief du champ
f[i].style.border = '3px solid red';
// insertion du carret dans le champ
f[i].select();
// arrêt de la fonction et empêche l'envoi du form
return false;
}
}
}
// si tout a été OK permettre l'envoi
return true;
}


<form onsubmit="return verif(this);" ... >


ça marche maintenat
merci


You're welcome.

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé