Rechercher : dans
Par :

Formulaire + javascript : verification champs

Dernière réponse le 14 nov 2009 à 19:30:50 wallacebarth22, le 15 jui 2008 à 14:29:58 
 Signaler ce message aux modérateurs

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>

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « formulaire + javascript : verification champs » dans :
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

macgawel, le 15 jui 2008 à 14:41:24
  • +1

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;

Répondre à macgawel

2

Alkaaran, le 15 jui 2008 à 14:41:43

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"..

Répondre à Alkaaran

4

wallacebarth22, le 15 jui 2008 à 17:17:03

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

Répondre à wallacebarth22

3

PhP, le 15 jui 2008 à 16:25:16
  • +1

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

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...

Répondre à PhP

7

wallacebarth22, le 13 nov 2009 à 20:23:58

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

Répondre à wallacebarth22

8

avion-f16, le 13 nov 2009 à 23:11:17

Ne confonds pas Java et Javascript.
J'ai un petit exemple qui traine, ici Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu­ lui dis de faire.

Répondre à avion-f16

9

 wallacebarth22, le 14 nov 2009 à 19:30:50

Je ne confond pas, t'inquiete, c'était juste une abréviation !

Répondre à wallacebarth22
Collection CommentÇaMarche.net