probleme function validate

Le
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>
Vos réponses
Trier par : date / pertinence
ASM
Le #726575
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é

john.swilting
Le #726572
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]


Olivier Miakinen
Le #726373

[...]
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 ?



ASM
Le #726372
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é



john.swilting
Le #719182
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




john.swilting
Le #719181
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





ASM
Le #719179

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;
}




ça marche maintenat
merci


You're welcome.

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


Publicité
Poster une réponse
Anonyme