11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai créé un formulaire que je traite avec un fichier php.
Je vérifie les données grâce à des fonctions javaScript. (ControleVide)
J'ai d'abord voulu que lorsqu'un champ est en erreur la fermeture de l'alerte ne recharge pas la page. J'ai trouvé.

Maintenant, je cherche à vérifier la syntaxe de l'adresse mail. (mon champ
s'appelle "corp") voir le HTML plus bas.

J'ai créé un nouvelle fonction (validation) et du coup une troisième (Principale) qui appelle les deux premières: (Principale appelle ControleVide + validation) Voir le javaScript plus bas.

l'"alerte" fonctionne lorsque j'omets l'@ du mail (par ex).
Par contre, à la fermeture de cet alerte la page se recharge de nouveau, et pire le mail est envoyé.

Je penses que je ne suis pas très loin.
Je dois avoir des erreurs dans la syntaxe du javaScript.

Pouvez vous m'aider ?
Ne pas recharger la page de façon à ce que les champs renseignés ne se vident pas.
Ne pas envoyer le formulaire si l'adresse mail n'est pas valide.

HTML, le formulaire
<form name="mail" enctype="application/x-www-form-urlencoded" onSubmit="Principale()">
	<p><label>Nom :</label><input type="text" name="nom" tabindex="10"/></p>
	<p><label>Prénom :</label><input type="text" name="prenom"tabindex="20"/></p>
	<p><label>Courriel :</label><input type="text" name="corp" tabindex="30"/></p>
	<p><label>Sujet :</label><input type="text" name="sujet"tabindex="40"/></p>
	<p><label>Message :</label><textarea name="message" id="textarea" tabindex="50"/></textarea></p>

<div class="droite">
	<p><input type="submit" name="envoyer" value="Envoyer" id="envoyer"></p></div>
	</form>


JavaScript
<SCRIPT language="javaScript"> 
<!--
function ControleVide()
{
if(document.mail.nom.value=='')
{
alert('Le champ NOM ne peut pas rester vide !');
document.mail.nom.focus();
return false;
}
else if(document.mail.prenom.value==''){
alert('Le champ PRENOM ne peut pas rester vide !');
document.mail.prenom.focus();
return false;
}
else if(document.mail.corp.value==''){
alert('Le champ COURRIEL ne peut pas rester vide !');
document.mail.corp.focus();
return false;
}

else if(document.mail.sujet.value==''){
alert('Le champ SUJET ne peut pas rester vide !');
document.mail.sujet.focus();
return false;
}
else if(document.mail.message.value==''){
alert('Le champ MESSAGE ne peut pas rester vide !');
document.mail.message.focus();
return false;
}
else
{
document.mail.method = "POST";
document.mail.action = "mail.php";
document.mail.submit();
}
}
function validation()
{
var corp = document.mail.corp.value;
var verif = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
if (verif.exec(corp) == null)
{
alert("Votre email est incorrecte");
return false;
}
else
{
document.mail.method = "POST";
document.mail.action = "mail.php";
document.mail.submit();}
} 

function Principale()
{
ControleVide();
validation();
}

//-->
</script>


Merci Smiley smile