Evenement Onsubmit

Signaler
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
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

Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

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-)
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013

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 :
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013

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 :
Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

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-)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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.
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013

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 :