Fonctions Javascript avec un formulaire JSP

Fermé
Yakurena Messages postés 47 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 1 juillet 2007 - 30 mai 2005 à 09:36
 doubledu - 1 avril 2008 à 15:10
Bonjour,
J'ai un problème avec les fonctions Javascript qui doivent tester la vacuité des champs à saisir dans un formulaire.
J'ai le fichier suivant : (il s'appelle test_fonctionsJavascript2.jsp , donc le formulaire,quand il est validé,renvoie à la page elle-même).

******************************************************

<html>
<head>
<title> Test des fonctions Javascript empêchant l'accès à la page qu'on doit normalement avoir après saisie d'un formulaire </title>
</head>

<SCRIPT language="Javascript" type="text/javascript">

function test_vacuite()
{ if(document.identification.login.value == "") { alert("Veuillez entrer votre login"); return false; }
if(document.identification.nom.value == "") { alert("Veuillez entrer votre nom"); return false; }
if(document.identification.prenom.value == "") { alert("Veuillez entrer votre prenom"); return false; }
return true;
}

</SCRIPT>

<body>
<%
if(request.getParameter("login")!=null)
{ out.println("Le formulaire a été rempli : vous vous appelez ");
out.println(request.getParameter("prenom") + " " + request.getParameter("nom").toUpperCase());
}
else
{ out.println("Identifiez-vous : <BR> <BR>");
out.println("<FORM action='test_fonctionsJavascript2.jsp' name='identification'>");
out.println(" Login : <input type='text' name='login'><BR><BR>");
out.println(" Nom : <input type='text' name='nom'><BR><BR>");
out.println(" Prenom : <input type='text' name='prenom'><BR><BR>");
out.println("<input type='submit' name='bValider' value='Valider' onClick='test_vacuite();'>");
out.println("</FORM>");
}
%>
</body>
</html>

******************************************************

Le problème est que,quand je valide le formulaire avec un des 3 champs resté vide,le message d'erreur(declenché par la fonction alert()) apparaît bien,mais le formulaire n'est pas proposé à nouveau : à la place,j'ai le message("Le formulaire a été rempli ... ") qui doit normalement s'afficher seulement si tous les champs du formulaire sont remplis. La fonction "test_vacuite" retourne bien "false" mais apparemment cela n'empêche pas le formulaire d'être validé.
Comment puis-je résoudre ça??
Merci d'avance.

1 réponse

Bonjour Yakurena,

En fait ton probleme est que le javascript est correctement executé et c'est donc tes conditions d'affichage qui ne sont pas bonne. Ton Javascript ne te sert qu'à afficher ta message box mais ne peux pas intervenir sur l'interpretation de ton code java. Donc la solution a ton probleme semble etre de faire le test de tes champs dans la java :

if(request.getParameter("login")!=null&&request.getParameter("login")!=""){
// code a executer lorsque ton champ login est renseigné
}

Lors du clic la page est rechargé et re-interpreté par le serveur avec les nouveaux champs mis à jour et meme si ton champ login ne contient rien en fait il contient une chaine vide mais n'est pas nul!!
0