Page 1 sur 1

javascript verif formulaire

Posté : 08 août 2008, 09:10
par donuts
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 ?

Posté : 08 août 2008, 09:14
par steph29
avec un else ca fonctionnera mieux ;)

Code : Tout sélectionner

} else return true;

Posté : 08 août 2008, 09:21
par donuts
ç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

Posté : 08 août 2008, 09:48
par steph29

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...

Posté : 08 août 2008, 10:11
par donuts
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 ?

Posté : 08 août 2008, 10:36
par steph29
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; }

Posté : 08 août 2008, 10:49
par donuts
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 ?

Posté : 08 août 2008, 10:50
par donuts
et c'esst quoi focus ?