Les Allergies
Alimentaires
Posez votre question Signaler

Formulaire + javascript : verification champs [Résolu]

wallacebarth22 50Messages postés 5 septembre 2007Date d'inscription 6 novembre 2011Dernière intervention - Dernière réponse le 20 mai 2012 à 11:14
Bonjour,
Un petit probleme pour les accro de javascript
Je viens de créer un formulaire, et je souhaiterais que mon code javascript empeche d'envoyer le message quand les champs sont vides.
Le probleme est que mon code n'excecute que la 1ere condition, et zappe les suivantes, j'ai du oublier un truc tout bete ...
si quelqu'un peu m'aider , merci d'avance
voila mon code javascript :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Qui desirez-vous contacter ?</title>
<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre Nom svp");
document.formulaire.nom.focus();
return false;
}
else
return true;
if(document.formulaire.sujet.value == "") {
alert("Veuillez entrer un sujet a votre message svp");
document.formulaire.sujet.focus();
return false;
}
else
return true;
if(document.formulaire.message.value == "") {
alert("Veuillez entrer un message svp");
document.formulaire.message.focus();
return false;
}
else
return true;
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse email svp");
document.formulaire.email.focus();
return false;
}
else
return true;
}
//-->
</script>
</head>
Lire la suite 

Formulaire + javascript : verification champs »

12 réponses
Réponse
+6
moins plus
Bonjour.

Il n'y a pas de problème, le code fait exactement ce que tu lui demandes :
function verification() {
   if(document.formulaire.nom.value == "") {
// SI nom est vide, on affiche une alerte, puis on sort de la fonction. La fonction renvoie FALSE
      alert("Veuillez entrer votre Nom svp");
      document.formulaire.nom.focus();
      return false;
   }
// SINON, on sort de la fonction, et elle renvoie TRUE
   else
      return true;
// Le reste n'est jamais exécuté, vu qu'on sort toujours de la fonction !!!
if(document.formulaire.sujet.value == "") { 

Enlève les else return TRUE;, et mets juste, à la fin de la fonction return TRUE;
Ajouter un commentaire
Réponse
+3
moins plus
Bjr

Tout est dit ! ;-)

Pour vérifier toute une série de champs le mieux est encore de créer un objet Javascript sur mesure

Ici les champs sont tous considérés comem des champs de type text et on ne teste que le fait que le champ soit vide ou pas. C'est très simpliste ...
Il faudrait le faire évoluer pour pouvoir gèrer d'autres types de champs : entier, réel, date, liste, case à cocher, bouton radio etc ...

Ex

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Qui desirez-vous contacter ?</title> 
<script type="text/javascript" language="Javascript" > 
<!-- 
function Champ(id, msg)
{
	this.id=id;
	this.msg=msg;
}

Champ.prototype.verifier=function()
{
	return (document.getElementById(this.id).value == "") ? this : null;
}

Champ.prototype.setFocus=function()
{
	document.getElementById(this.id).focus();
}


function ChampListe()
{
	this.items = new Array();
}

ChampListe.prototype.add=function(id,msg)
{
	this.items.push(new Champ(id,msg));
}

ChampListe.prototype.verifierTout=function()
{
	var result = null;
	for (var i=0; i < this.items.length; i++)
	{
		result = this.items[i].verifier();
		if (result)
		{
			break;
		}
	}	
	return result;
}


var champs = new ChampListe();
// Ici on ajoute autant de champs qu'on désire
// du moment qu'il s'agit bien de champs texte -> input ="text"
// Nota qu'on passe l'id de chaque champ et pas son attribut "name"
champs.add("nom","Veuillez entrer votre Nom svp");
champs.add("sujet","Veuillez entrer un sujet a votre message svp");
champs.add("message","Veuillez entrer un message svp");
champs.add("mail","Veuillez entrer votre adresse email svp");



function verification() 
{ 
	var champ = champs.verifierTout();
	if (champ)
	{
		alert(champ.msg);
		champ.setFocus();
		return false;
	}
	else
	{
		return true;
	}
}
//--> 
</script> 


</head>
<body>
<form>
<table>
<tr>
	<td>Nom</td><td><input type="text" id="nom"></td>
</tr>
<tr>	
	<td>Sujet</td><td><input type="text" id="sujet"></td>
</tr>	
<tr>
	<td>Message</td><td><input type="text" id="message"></td>
</tr>
<tr>	
	<td>Email</td><td><input type="text" id="mail"></td>
</tr>	
</table>
<input type="button" onclick="verification()" value="Vérifier">
</form>
</body>


je sais pas si ca peut t'aider
avion-f16- 13 nov. 2009 à 23:11
Ne confonds pas Java et Javascript.
J'ai un petit exemple qui traine, ici
wallacebarth22 - 14 nov. 2009 à 19:30
je ne confond pas, t'inquiete, c'était juste une abréviation !
Blusy38 - 27 sept. 2010 à 22:31
Chez moi il affiche un message mais apres il ouvre la page action il ne bloque pas l'envoi du formulaire.
Ajouter un commentaire
Réponse
+1
moins plus
Dès que tu fais un "return", ta fonction s'arrete...
Donc je te propose de mettre a chaque fois que tu dois faire un return false remplace la par une variable, que tu testeras à la fin :

Voici ton code modifié :
function verification()
{
var erreur = false ;

if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre Nom svp");
document.formulaire.nom.focus();
erreur = true ;
}


if(document.formulaire.sujet.value == "") {
alert("Veuillez entrer un sujet a votre message svp");
document.formulaire.sujet.focus();
erreur = true ;
}


if(document.formulaire.message.value == "") {
alert("Veuillez entrer un message svp");
document.formulaire.message.focus();
erreur = true ;
}


if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse email svp");
document.formulaire.email.focus();
erreur = true ;
}

if( erreur == true)
return false;
else
return true;

} 


Il y a encore un petit problème je pense... Ton focus va être donné à la dernière erreur, soit si tous les champs sont vides, ça le donnera au champ "e-mail"..
wallacebarth22- 15 juil. 2008 à 17:17
merci beaucoup, le probleme du focus n'est pas trop trop genant donc vraiment merci a toi Alkaaran

desole PHp mais ton code dépasse detres loin mon niveau, lol, et de toute façon ce n'est pas vraiment obligatoire pour le moment

donc merci a vous tous
Ajouter un commentaire
Réponse
+1
moins plus
<script language="javascript">
function verif ()
{
v=document.f1.code.value;
x=document.f1.nom.value;
y=document.f1.prenom.value;
z=document.f1.adresse.value;
if (v.length !=8)
{
alert ("La valeur est moins que 8 chiffres! O.o")
return false;
}
if(x=="")
{
alert("Champ vide!")
return false;
}
if(y=="")
{
alert("Champ Vide!")
return false;
}
if (z.indexOf('@')==-1)
{
alert("E-mail est incorrecte!")
return false;
}
}
</script>
Ajouter un commentaire
Réponse
+0
moins plus
bonjour cher collègue.
en fait j'ai un formulaire et jai deux boutons(valider et annuler)
pour le bouton valider j'ai fait le code en javascript et sa fonctionne tres bien, mais pour le bouton annuler je cherche un code sur internet qui me permettra de le mettre dans ma fonction ci dessous mais je ne trouve po.quelqu'un peut il m'aider pour mon bouton annuler afin qu'il me regirige ver ma page d'acceuil index.html quand je clik dessus.

Merci.
voici le code javascript du bouton valider

<script language="javascript">
function verifier_formulaire()
{
//declaration des varibales et du tableau d'erreur
var numero_erreur=0;
var erreur=0;
var tab_erreur=new Array();
var description_erreur="";
var i;
//verifier si le nom est rempli
if(document.envoi_email.nom.value=="")
{
erreur=1;
tab_erreur[numero_erreur]="Entrez votre nom";
numero_erreur++;
}
//verification du prenom
if(document.envoi_email.prenom.value=="")
{
erreur=1;
tab_erreur[numero_erreur]="Entrez votre prenom";
numero_erreur++;
}

//Verification de l'adresse email
email=document.envoi_email.email.value
var arobase = email.indexOf("@")
var point = email.lastIndexOf(".")
if((document.envoi_email.email.value)=="")
{
erreur=1;
tab_erreur[numero_erreur]="Entrez votre adresse email";
numero_erreur++;

}
else if((arobase < 1)||(point < arobase+2)||(point+1 == email.length)||(point+1==email.length-1))
{
erreur=1;
tab_erreur[numero_erreur]="l'email est incorrect";
numero_erreur++;

}


//Verification du numero du champ message
if(document.envoi_email.commentaire.value=="")
{
erreur=1;
tab_erreur[numero_erreur]="Entrez votre commentaire";
numero_erreur++;
}


//affichage de l'erreur ou envoie du formulaire
if(erreur==1)
{
description_erreur="Veuillez corriger les donnees du formulaire:\n"
for(i=0; i<numero_erreur; i++)
description_erreur=description_erreur+"\n*"+tab_erreur[i];
window.alert(description_erreur);
return false;
}
else return true;

}
</script>
Ajouter un commentaire
Réponse
+0
moins plus
mana3ref chay
mimi - 21 mai 2011 à 21:14
mmmmmmmmmmmmmmmmmmmmmm
j'ai rien compris
Ajouter un commentaire
Ce document intitulé « formulaire + javascript : verification champs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?