javascript verif formulaire

donuts
Invité n'ayant pas de compte PHPfrance

08 août 2008, 09:10

bonjour à tous

j'ai créé une fonction qui vérifie un formulaire

j'apelle cette fonction en même tant que Onsubmit
mon message d'alert s'affiche mais le formulaire est quand même envoyé à ma base de donnée
voila le code

********dans head**********
<script language="Javascript">
function verif()
{ var Nom_propr = document.form1.Nom_propr.value;
if(Nom_propr==""){
alert("veuillez saisir le nom du propriétaire");
return false;
}
return true;
}
</script>
*******apel de la fonction*********
<form method="post" action="<%=MM_editaction%>" name="form1" onsubmit="verif()">

quelqu'un peut m'aider ?

Eléphant du PHP | 175 Messages

08 août 2008, 09:14

avec un else ca fonctionnera mieux ;)

Code : Tout sélectionner

} else return true;

donuts
Invité n'ayant pas de compte PHPfrance

08 août 2008, 09:21

ça ne change rien t'est pas obligé quand t'as qu'une boucle
mais j'ai essayé quand même
et j'ai essayé de changer d'apeller la fonction dans le onclick du boutton submit et le formulaire est toujour enregistré dans la base

Eléphant du PHP | 175 Messages

08 août 2008, 09:48

Code : Tout sélectionner

onsubmit="javascript: return verif();"
le else, c'est certes pas indispensable mais autant prendre les bonnes habitudes, ca t'eviteras des erreurs betes...

imagine que tu veuille evaluer plusieurs champs, tu duplique ton test
et ensuite tu remplaces tes return par des variables...
ta variable sera a true systematiquement... :twisted:
apres...

donuts
Invité n'ayant pas de compte PHPfrance

08 août 2008, 10:11

maintenant ça marche

mais je suis plus ou moins débutant je comprend pas ce que tu veut dire
si il y a plusieur champs à vérifier on doit mettre plusieur "if" et un seul else c'est ça ?

Eléphant du PHP | 175 Messages

08 août 2008, 10:36

en fait c'est plus un conseil d'ecriture, une bonne habitude a prendre.
le else existe, ca permet d'etre plus explicite, ca facilite la comprehension et donc la maintenance

apres on peut passer a d'autres forme d'ecriture pour le meme resultat:

Code : Tout sélectionner

/*ecriture conseillee*/ if(Nom_propr==""){ alert("veuillez saisir le nom du propriétaire"); return false; } else return true; /*ok*/ if(Nom_propr==""){ alert("veuillez saisir le nom du propriétaire"); error_nom=true; } else error_nom=false; if (error_nom) return false; /*ok*/ error_nom=false; if(Nom_propr==""){ alert("veuillez saisir le nom du propriétaire"); error_nom=true; } if (error_nom) return false; /*non ok*/ if(Nom_propr==""){ alert("veuillez saisir le nom du propriétaire"); error_nom=true; } error_nom=false; if (error_nom) return false;
le 4eme exemple est calqué sur ton ecriture,
en effet ton code est bon car ton return sort de la fonction directement mais si tu le passe betement avec des variables ca peut etre le contraire de ce que tu veux ;)

j'espere avoir ete clair et ne pas trop t'embrouiller

en bonus une facon de verifier plusieurs champs

Code : Tout sélectionner

function verif(){ error=false; if(Nom_propr==""){ alert("veuillez saisir le nom du propriétaire"); error=true; } if(Prenom==""){ alert("veuillez saisir le prenom du propriétaire"); error=true; } if (error) return false; else return true; }

donuts
Invité n'ayant pas de compte PHPfrance

08 août 2008, 10:49

non non c'est bien plus clair comme ça ! je te remercie

j'ai encor une question

j'ai vue dans un template sur internet quelqu'un utiliser ce code ci :

Code : Tout sélectionner

if(document.form1.variable.value =="") {alert("blablabla"); document.form1.variable.focus(); return false;}
ça apporte quoi de déclaré les variables à chaque fois et pas une fois au début ?

donuts
Invité n'ayant pas de compte PHPfrance

08 août 2008, 10:50

et c'esst quoi focus ?