Formulaire - mail facultatif

tartartartar Messages postés 27 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 15 décembre 2013 - 28 mars 2012 à 13:38
tartartartar Messages postés 27 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 15 décembre 2013 - 28 mars 2012 à 19:34
Bonjour,

J'ai récupéré un formulaire pour envoyer un email en AS3, j'aimerais le modifier afin de rendre l'adresse email facultative, ici, on doit obligatoirement entrer un mail sous la forme ------@----.---
J'aimerais retirer cette obligation...

Merci !

import fl.managers.StyleManager;

StyleManager.setStyle("textFormat", new TextFormat("Verdana", 11, 0x000000));
const SENDING:String 	  = "Sending";
const SENT_SUCCESS:String = "Successful";
const SENT_FAILED:String  = "Unsuccessful";
var tmr:Timer;

function resetTextFields():void {
name_txt.text 	 = "";
email_txt.text 	 = "";
message_txt.text = "";
}

function resetContactForm():void {
submit_btn.enabled  = true;
feedback_mc.visible = false;
clearErrors();
}

function afterTmrWait(evt:TimerEvent):void {
tmr.stop();
tmr.removeEventListener(TimerEvent.TIMER, afterTmrWait);
resetContactForm();
}

function validateEmail(str:String):Boolean {
var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
var result:Object = pattern.exec(str);
if(result == null) {
return false;
}
return true;
}

function submitForm(evt:MouseEvent):void {
clearErrors();

var passChecks:Boolean = true;	

if(name_txt.text.length < 1) {
nameError_mc.visible = true;
passChecks = false;
}
if(!validateEmail(email_txt.text)) {
emailError_mc.visible = true;
passChecks = false;
}
if(message_txt.text.length < 1) {
messageError_mc.visible = true;
passChecks = false;
}

if(passChecks) {
submit_btn.enabled  = false;
feedback_mc.visible = true;
feedback_mc.gotoAndStop(SENDING);

var urlVars:URLVariables = new URLVariables();
var urlReq:URLRequest 	 = new URLRequest("send_email.php");
var ldr:URLLoader 	 	 = new URLLoader();

urlVars.name 	= name_txt.text;
urlVars.email 	= email_txt.text;
urlVars.message = message_txt.text;
urlReq.data 	= urlVars;
urlReq.method 	= URLRequestMethod.POST;
ldr.addEventListener(Event.COMPLETE, serverFeedback);
ldr.load(urlReq);
}
}

function serverFeedback(evt:Event):void {
var ldr:URLLoader = evt.target as URLLoader;
var urlVars:URLVariables = new URLVariables(ldr.data);

if(urlVars.result == SENT_SUCCESS) {
feedback_mc.gotoAndStop(SENT_SUCCESS);
resetTextFields();
} else if(urlVars.result == SENT_FAILED) {
feedback_mc.gotoAndStop(SENT_FAILED);
}

tmr = new Timer(3000, 1);
tmr.addEventListener(TimerEvent.TIMER, afterTmrWait);
tmr.start();
}

function clearErrors():void {
nameError_mc.visible 	= false;
emailError_mc.visible 	= false;
messageError_mc.visible = false;
}

submit_btn.addEventListener(MouseEvent.CLICK, submitForm);

resetTextFields();
resetContactForm();

4 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
28 mars 2012 à 14:09
Bonjour, ta demande est tellement simple que je me demande si tu as réellement pris le temps de lire ton code ..
Au premier coup d'oeil, moi j'ai vu une condition qui utilise une fonction judicieusement appelée "validateEmail".

Donc prenez le temps de potasser un minimum avant de poster des trucs aussi simple ici, c'est un forum d'entraide, pas d'assistanat.
Après les gens s'étonneront de ne pas avoir de réponse ...

Peg'
Admin Codes-Sources
0
tartartartar Messages postés 27 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 15 décembre 2013 1
28 mars 2012 à 14:12
C'est bon j'ai trouvé, je n'ai peut être pas été très clair, il ne s'agissait pas de retirer la fonction, mais d'autoriser également un champs vide...
je ne connaissais pas la syntaxe, j'ai simplement ajouté |^$ :

var pattern:RegExp = /((\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+)|^$/;

Merci
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
28 mars 2012 à 18:12
"|^$" voulant dire "ou n'importe quoi d'autres", le fait de retirer le test via cette fonction revient au même ... et évite même une série instructions devenues inutiles.

Peg'
0
tartartartar Messages postés 27 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 15 décembre 2013 1
28 mars 2012 à 19:34
Non ça veut dire "ou vide", après vérification c'est bien ça si je mets n'importe quoi ça ne fonctionne pas.
0
Rejoignez-nous