tartartartar
Messages postés27Date d'inscriptionvendredi 19 août 2011StatutMembreDernière intervention15 décembre 2013
-
28 mars 2012 à 13:38
tartartartar
Messages postés27Date d'inscriptionvendredi 19 août 2011StatutMembreDernière intervention15 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();
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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 ...
tartartartar
Messages postés27Date d'inscriptionvendredi 19 août 2011StatutMembreDernière intervention15 décembre 20131 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}+)|^$/;
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 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.