11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,

J'ai un petit souci pour valider en javascript, le formulaire que vous trouverez ci-dessous. Pour vérifier que mes champs sont bien remplis j'utilise le script suivant :

<script type="text/javascript">
<!--
function valider(){
// si la valeur du champ prenom est non vide
if(document.Questionnaire.nom_exercice.value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else {
// sinon on affiche un message
alert("Saisissez le nom");
// et on indique de ne pas envoyer le formulaire
return false;
}
if(document.Questionnaire.prenom_exercice.value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else {
// sinon on affiche un message
alert("Saisissez le prénom");
// et on indique de ne pas envoyer le formulaire
return false;
}
}
//-->
</script>

J'arrive à lui faire dire que mon champ "nom" n'est pas renseigné mais pas le champ "prénom", je suis sûre que c'est tout simple mais n'étant pas une familière du javascript, je tourne un peu en rond.

Merci d'avance de votre aide.
Cecline

----------

Formulaire :

<form action="mailto:..." method="post" enctype="text/plain" name="Questionnaire" onsubmit="return valider()">

<fieldset><legend>Informations personnelles</legend>

<p><label for="nom_exercice">NOM : <input name="Nom" maxlength="100" id="nom_exercice" type="text"></label></p>

<p><label for="prenom_exercice">Pr&eacute;nom : <input
name="Pr&eacute;nom" maxlength="100" id="prenom_exercice"
type="text"></label></p>

<p>Mot de passe (8 caract&egrave;res) <input name="Mot de passe" maxlength="50" type="password"></p>
</fieldset>

<fieldset><legend>Fin du formulaire</legend>
<p>Suggestions : <textarea name="Suggestions"
rows="3" cols="50"></textarea></p>

<p><input value="OK" type="submit">
<input value="Remise &agrave; z&eacute;ro..." type="reset"></p>

</fieldset>
</form>
Modifié par Cecline (23 Feb 2005 - 17:58)
Petite critique : évite de mettre ton email en clair directement dans l'action du formulaire. Sinon vive le spam.

Ensuite, essaye de raisonner logiquement avec tes conditions IF :

Dans ton cas :
IF ( ... ) { return true ; } else { return false ; }

donc il ne passera jamais à la ligne suivante.
La méthode est de mettre un compteur qui s'incrémente à chaque erreur.
IF ( condition non vérifiée ) { affiche erreur; COMPTEUR++; }
... etc...

Après mettre :
IF ( COMPTEUR > 0 ) RETURN FALSE ;
RETURN TRUE;

Modifié par anthony (23 Feb 2005 - 18:07)
Bonjour Cecline et bienvenue sur Alsacréations,

Merci d'utiliser les balises [ code][ /code] sans les espaces pour présenter du code dans les messages.

Comme ton message traite de javascript, je vais le déplacer dans le salon DOM, JavaScript, ECMAScript.