Menu

Formulaire + javascript : verification champs [Résolu/Fermé]

Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
- - Dernière réponse :  Mario Khaled Balotelli - 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>
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
671
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
85
9
Merci
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;

Dire « Merci » 9

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 46480 internautes nous ont dit merci ce mois-ci

Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
598
4
Merci
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
-
merci de ton aide, je vais essayer de décortiquer ça. pour le moment le java suffit, mais j'ai bien conscience que le php est plus propre
avion-f16
Messages postés
18296
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 juin 2019
4081 > wallacebarth22 -
Ne confonds pas Java et Javascript.
J'ai un petit exemple qui traine, ici
> avion-f16
Messages postés
18296
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 juin 2019
-
je ne confond pas, t'inquiete, c'était juste une abréviation !
Chez moi il affiche un message mais apres il ouvre la page action il ne bloque pas l'envoi du formulaire.
2
Merci
<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>
Messages postés
285
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2009
37
1
Merci
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
Messages postés
91
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
9 mai 2019
5 -
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
Messages postés
28
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
12 septembre 2010
2
1
Merci
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>
mmmmmmmmmmmmmmmmmmmmmm
j'ai rien compris