Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
<script language="JavaScript" type="text/javascript">
<!--
function validateForm() {
var name = document.myForm.Age.value;
var name = document.myForm.Taille.value;
var name = document.myForm.Tartre.value;
var name = document.myForm.Parodontose.value;
var name = document.myForm.Brossage.value;
var name = document.myForm.Detartrage.value;
var name = document.myForm.Maladies.value;
var name = document.myForm.Alimentation.value;
var name = document.myForm.Os.value;
if (name == "") {
alert("Vous avez oublié de remplir un champ obligatoire !");
return false;
} else return true;
}
//-->
</script>
Le problème, c'est que si je remplis seulement le dernier champ obligatoire (celui qui correspond à la question "Votre chien mange-t-il des os ?"), le formulaire est quand même envoyé et le message d'erreur n'apparaît pas.
J'ai essayé de rajouter un autre champ en dessous. Du coup, le champ "Os" est testé correctement, et c'est le nouveau que j'ai ajouté à la fin qui se met à poser problème. Je comprend pas vraiment pourquoi, mais c'est toujours le dernier qui pose problème.
Merci d'avance pour vos conseils...
Emma.
Dernière modification par EmmaZL le 12 août 2005, 13:05, modifié 1 fois.
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok) Ma configuration
tu remplaces ce que tu avais dans "name" par la nouvelle valeur.
Donc ton code ne teste que la valeur du dernier champ.
Il faudrait que ta condition ressemble à quelque chose comme ça :
if ( document.myForm.Age.value == "") or
(document.myForm.Taille.value == "") or
.... ) {
alert("Vous avez oublié de remplir un champ obligatoire !");
return false;
}
var form = document.myForm;
var champsAVerifier = new Array( "form.Age.value", "form.Taille.value", "form.Tartre.value;", "...", "form.Os.value" );
for ( i = 0; i < form.length; i++ ) {
if (form[i] =="") {
alert("Vous avez oublié de remplir un champ obligatoire !");
return false;
}
}
(Il faudra en plus trouver un moyen de casser la boucle en cas de champ manquant, sinon s'il manque 10 champs il faudra cliquer 10 fois sur OK
La solution de nic a l'avantage de permettre de dire au visiteur exactement quel champ il n'a pas rempli
<script language="JavaScript" type="text/javascript">
<!--
function validateForm() {
if ( document.myForm.Age.value == "") or
if ( document.myForm.Taille.value == "") or
if ( document.myForm.Tartre.value == "") or
if ( document.myForm.Parodontose.value == "") or
if ( document.myForm.Brossage.value == "") or
if ( document.myForm.Detartrage.value == "") or
if ( document.myForm.Maladies.value == "") or
if ( document.myForm.Alimentation.value == "") or
if ( document.myForm.Os.value == "")
{
alert("Vous avez oublié de remplir un champ obligatoire !");
return false;
} else return true;
}
//-->
</script>
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok) Ma configuration
Je pense que tu devrais regarder ta console javascript pour t'apercevoir que ta syntaxe ne doit pas être correcte (mais pourquoi n'arrête-t-il pas tout ?)
Si je ne me trompe pas, or if n'existe pas comme elseif. Tu dois tout imbriquer, ça devrait être quelque chose du genre :