13. februar 2004 - 12:24
Der er
12 kommentarer
chekke for @ i flash fomrmail
Så er jeg her igen.... Vil bare høre om nogen ved hvordan man (ved hjælp af actionscript) sikre at man indtaster @ i mailboksen. Min action på submitknappen ser således ud: on (release) { if (name eq "" or subject eq "" or message eq "" or email eq "") { stop(); } else { loadVariablesNum("form.php", 0, "POST"); gotoAndStop(2); } } Mvh Søren
Annonceindlæg fra HP
13. februar 2004 - 12:31
#1
Jeg bruger denne, det er til cgi - ved ikke om det gør en forskel. on (release, keyPress "<Enter>") { if (!navn.length) { status = "Skriv venligst dit navn."; } else if (!email.length) { status = "Skriv venligst din email-adresse"; } else if (email.indexOf("@") == -1) { status = "Husk @ :-) " } else if (email.indexOf(".") == -1) { status = "Husk punktum . :-)" }else if (!meddel.length) { status = "Skriv venligst en meddelse"; } else { subject = "Mail fra hjemmesiden"; recipient = "fotografen@michaeldamsgaard.dk"; loadVariablesNum("/cgi-sys/formmail.pl ", "", "POST"); navn = ""; email = ""; meddel = ""; status = ""; gotoAndPlay("tak"); } }
13. februar 2004 - 12:32
#2
// Der er ingen grund til kun at checke for om der findes et @ - Hvad så hvis der findes 2 - Så er du stadigt på ski.... function checkEmail(e) { trace("tjekker") var legalChars = "abcdefghijklmnopqrstuvwxyz0123456789"; var allChars = legalChars+"-_"; var pos = 0; var count; var start; var lastDot = e.lastIndexOf("."); lastDot = lastDot == -1 ? e.length-1 : lastDot; while (pos < lastDot && e.charAt(pos) != "@") { if (pos != 0 && e.charAt(pos++) != ".") { return false; } if (legalChars.indexOf(e.charAt(pos++)) == -1) { return false; } while(pos < lastDot && allChars.indexOf(e.charAt(pos)) != -1) { pos++; } } if (e.charAt(pos++) != "@") { return false; } start = pos; while (pos != lastDot) { if (pos != start && e.charAt(pos++) != ".") { return false; } if (legalChars.indexOf(e.charAt(pos++)) == -1) { return false; } while(pos != lastDot && allChars.indexOf(e.charAt(pos)) != -1) { pos++; } } pos++; for(count = 0; pos < e.length && legalChars.indexOf(e.charAt(pos)) != -1; count++) { pos++; } return pos == e.length && count >= 2; } Og så på knappen : on (release) { if(checkEmail(navn)){ loadVariablesNum("form.php", 0, "POST"); gotoAndStop(2); }else{ stop(); } }
13. februar 2004 - 12:34
#3
Ups. on (release) { if(checkEmail(name)){ loadVariablesNum("form.php", 0, "POST"); gotoAndStop(2); }else{ stop(); } }
13. februar 2004 - 12:35
#4
hvor skal jeg indsætte det første (det som ikke skal på knappen)?
13. februar 2004 - 12:36
#5
Det skal bare ligge i samme frame som knapperne. (ikke på knapperne men på tidslinien)
13. februar 2004 - 12:39
#6
thviid - Det gør ingen forskel om hvor flash skal sende data hen - Det her foregår jo inde i flashen. :))
13. februar 2004 - 12:45
#7
nu sker der ikke en skid når jeg trykker på knappen??
13. februar 2004 - 12:53
#8
Jamen det er vidst min and. Jeg tester for en email i "name" feltet.... on (release) { if(checkEmail(name) && name.length>=1){ loadVariablesNum("form.php", 0, "POST"); gotoAndStop(2); }else{ stop(); } } Hvis du tester inde fra flashen skal output boksen poppe op og skrive "tjekker" - Hvis ikke den gør det er placeringen af dit script forkert.
13. februar 2004 - 12:54
#9
Og prøver lige igen : on (release) { if(checkEmail(email) && name.length>=1){ loadVariablesNum("form.php", 0, "POST"); gotoAndStop(2); }else{ stop(); } }
13. februar 2004 - 18:51
#10
nu ser det næsten ud til at virke! Den sender sender i hvertfald ikke mailen før mail-formen er udfyldt med både "@" og ".", men nu bliver det indtastede navn ikke medsendt til mailen?? Kan man evt. også få den til at udskrive en fejlmeddelelse hvis mail-formen ikke er indtastet korrekt?? Mvh Søren
13. februar 2004 - 19:37
#11
Så kan du passende bruge t-hviid´s version - Der skal du "bare" lave et tekstfe med variabel navn "status"
06. august 2004 - 09:56
#12
nå ikke
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.