Evenement Onsubmit

cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 24 avril 2004 à 15:38
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 26 avril 2004 à 20:28
salut,

j'ai un formulaire dont lequel j'appel une fonction javascript verif par l'evenement OnSubmit, qui a pour tâche de verifier les champs de mon formulaire.

<form name="form" action="add1.php?l=<?=$l?>" method="post" enctype="multipart/form-data" OnSubmit="return verif(this)">

la fonction verif (par exemple pour le champ login):

function verif(form)
{

// teste si le formulaire est rempli
if (form.login.value == '')
{
alert('Vous n\'avez pas saisi votre login');
form.login.focus();
return false;
}
}

auparavant ça marchais trés bien (la fonction verif est toujours appelée par le OnSubmit) mais aujourd'hui ça grippe ???

pourquoi ? je ne sais pas !

je voulais testé l'évenement OnSubmit, alors j'ai ajouté un ligne javascript avec le bouton submit du formulaire :

</td>

mais l'alerte n'est jamais execute !!!!

Qqn peut m'expliquer, svp ?

Merci
------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :

6 réponses

Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
24 avril 2004 à 19:24
Atten, ton alert, c'est pas étonnant quelle ne marche pas, parce que dans ce cas, c'est quand le bouton est "submité" que l'alert devrais fonctionner ...

Un conseil, n'appelle jamais un formulaire form, ça risque de ne pas marcher...

Autrement, pour ton problème, tu paux essayer ça, ça marche:

<html>

<head>
<script>
function verif()
{
if (document.forme.login.value == "")
{
alert('Vous n\'avez pas saisi votre login');
document.forme.login.focus();
return false;
}
}
</script>
</head>

<form name="forme" action="add1.php?l=<?=$l?>" method="post" enctype="multipart/form-data" OnSubmit="return verif(this)">

</form>

</html>

Jsman
8-)
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
24 avril 2004 à 21:27
j'ai change le nom du formulaire, mais rien ne se pase !!

mais cette meme fonction avec ce meme non du formulaire fonctionnait il y a à peine un semaine !!!

------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
25 avril 2004 à 14:48
salut,

je crois que j'ai regle partiellement le probleme, mais j'aimerais quand même comprendre le pourquoi de ce disfonctionnement :

en fait ma page add1.php se compose de trois parties :

templates/header.php
add1.php
templates/footer.php

et dans add1.php on trouve un switch case :

La fonction verif(form) est appelée en deuxieme cas :

switch ($etape) {
case 2 :
?>
<script language="javascript">
fonction verif(form)
{
if (form.login.value == '')
{
alert('Vous n\'avez pas saisi votre login');
form.login.focus();
return false;
}
}
</script>

<form name="forme" action="add1.php?l=<?=$l?>" method="post" enctype="multipart/form-data" OnSubmit='return verif(this)'>

</form>
<? ... code php
case 3 :
... code php

alors j'ai voulu recuperer tout le code javascript dans seul fichier appelé par exemple js_site.js qui se trouve dans la racine du site.

il suffit seulement d'une ligne entre les balises <head></head> du fichier header.php :

<script language="JavaScript" src="../js_site.js"></script>

alors là, la fonction verif(form) qui n'est jamais appelée !!!!

pourquoi ?

quand j'ai reecris cete fonction dans la partie switch case=2, là, elle est appelée et fonctione tres bien.

j'aimearis bien comprendre comment enlever tout le code jabascript de mon fichier add1.php et le mettre dans un seul et ainsi pouvoir l'appele depuis, sans perbleme !

Merci.

------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
0
Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
25 avril 2004 à 19:34
Bon, on va pas dire que je suis une bète en php lol
déjà ou se trouve ta page dans ton site ?

Il y a peut-être une chance pour que ce soit à cause du 'this',
t'as essayé avec mon code ?

moi, ce qui m'étonne c'est qu'il n'y a rien après le "case 2" ...

Jsman
8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 avril 2004 à 09:40
Bonjour

switch ($etape) {
case 2 :
?>
<script type="text/javascript" src="exemple.js"></script>
....

et le fichier exemple.js :
fonction verif(form)
{ if (form.login.value == '')
{alert('Vous n\'avez pas saisi votre login');
form.login.focus();
return false; } }

ça doit fonctionner.
il faut-être sûr que le fichier .js à inclure l'est bien.
tout dépend de comment est fait le php, ce .js
n'est peut-être pas inséré là où l'instruction
<script ... est mise ?
Cordialement. Bul.
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
26 avril 2004 à 20:28
Jsman --> ton premier code fonctionne tres bien.

c'est lorsque je veux cette fonction depuis un fichier *.js que ça devient comme ça.

bultez --> je vais essaye ton code ça me parait logique ...

le fichier *.php et celui en *.js se trouvent à la racine.

l'appel du dernier par ../exemple.js ce fera depuis :

templates/header.php

mais je crois que le chemin est meconnaissable.

------------------------------------------------------------------
Debutant PHP/SQL, Delphi
Club de correspondance :
0
Rejoignez-nous