Avatar billede webtrance.dk Nybegynder
01. april 2002 - 12:04 Der er 13 kommentarer

valider form i flash

Jeg her en formular i flash med et par tekst input og et email input der skal valideres så formularen ikke kan afsendes uden disse felter er udfyldt.

Når man nu laver nogle input felter i flash, så har de ingen form, så jeg har svært ved at kalde dem fra et javascript, men det smarteste ville alligevel være at lave det i actionscript. Kan nogen hjælpe mig?
Avatar billede Slettet bruger
01. april 2002 - 12:24 #1
Avatar billede barklund Nybegynder
01. april 2002 - 17:48 #2
Hvormeget validering vil du have? Skal emailvalideringen blot kontrollere, at der er et (og kun et) "@" efterfulgt af mindst 1 "."? Så prøv:

if (emailField.indexOf("@") != -1 && emailField.indexOf("@") == emailField.lastIndexOf("@") && emailField.indexOf("@") < emailField.lastIndexOf(".")) {
    // det er ok
} else {
    // det er ikke ok
}
Avatar billede barklund Nybegynder
01. april 2002 - 18:37 #3
Eller en lidt stærkere (og smartere) evaluering:

function valid(emailField) {
    var evaluate = 1;
    evaluate = evaluate && (sp = emailField.indexOf("@")) > 0;
    evaluate = evaluate && sp == emailField.lastIndexOf("@");
    evaluate = evaluate && sp < emailField.lastIndexOf(".");
    evaluate = evaluate && substring(emailField,sp+2,1) != ".";
    evaluate = evaluate && substring(emailField,sp,1) != ".";
    return evaluate
}

trace("morten@barklund.dk = "+valid("morten@barklund.dk"));
trace("@barklund.dk = "+valid("@barklund.dk"));
trace("morten.@barklund.dk = "+valid("morten.@barklund.dk"));
trace("morten@barklund.dk.dk = "+valid("morten@barklund.dk.dk"));
trace("morten@.barklund.dk = "+valid("morten@.barklund.dk"));
trace("morten@barklund@dk.dk = "+valid("morten@barklund@dk.dk"));

if (valid(myEmailText)) {
    //blabla
}

Hvis du kører ovenstående, så fanges de fleste typer ulovlige emails...

Det 1. tegn er ikke det eneste "@", tegnet før og efter "@" er ikke "."...

/Barklund
Avatar billede Slettet bruger
01. april 2002 - 19:01 #4
Ja, og måske lige tilføje;

    evaluate = evaluate && (emailField.lastIndexOf(".")+2) < emailfield.length;
    evaluate = evaluate && (emailField.lastIndexOf(".")+6) > emailfield.length;

- så skal et suffix fra 2 til 4 figurerer efter sidste punktum
dk, net, com, biz, name, org .... osv.
Avatar billede webtrance.dk Nybegynder
01. april 2002 - 19:52 #5
Tak det er nok, de første link var ok.. Men nu har jeg lidt mere.
Avatar billede barklund Nybegynder
02. april 2002 - 07:48 #6
> d!ktator

Jeg tænkte på det samme sidenhen, men blandt de kommende toplevel-dom er vist nok også mere spøjse variationer som fx .museum - den passer ikke helt ind... Men din første validering på mindst 2 tegn efter sidste punktum er eviggyldig... :o)

/Barklund
Avatar billede webtrance.dk Nybegynder
02. april 2002 - 17:26 #7
Dette her http://www.flashfaq.dk/spg.asp?faq=57 script virkede bortset fra den skriver "ok" i de felter der valideres inden den sender det og sletter så brugerens info med det ok
Avatar billede webtrance.dk Nybegynder
02. april 2002 - 17:29 #8
barklund > tjekker den her også hvis feltet er tomt?

if (emailField.indexOf("@") != -1 && emailField.indexOf("@") == emailField.lastIndexOf("@") && emailField.indexOf("@") < emailField.lastIndexOf(".")) {
    // det er ok
} else {
    // det er ikke ok
}
Avatar billede Slettet bruger
02. april 2002 - 18:24 #9
webtrance.dk >> Så er det fordi du har angivet dine inputfelter forkert.
Dine inputfelter skal hedde; 'navn, og 'mail'

Felterne 'tjeck_navn' og 'tjeck_mail' er kun til som alert-tekst.

Med hensyn til barklunds eksempel - hvorfor prøver du det ikke bare af ??
Men det er selvfølgelig nemmere at spørge her.... Ja, det tjekker i realiteten også for et tomt felt, for hvis der ikke er angivet et @ så vil det ikke være 'ok' - og der figurerer jo ikke noget @ i et tomt felt ;-)

Mvh/M!chael
Avatar billede webtrance.dk Nybegynder
02. april 2002 - 19:18 #10
d!ktator > det passer ikke helt det du skriver for i scriptet kan det først afsendes her :
if (tjeck_navn == "ok"  && tjeck_mail == "ok") {
      getURL ("http://www.domaene.dk/mail.asp";, "_blank", "GET");
  }
}
Hvis if ikke er "ok" afsendes det ikke....
Avatar billede webtrance.dk Nybegynder
02. april 2002 - 19:20 #11
hvis man ikke spurgte, hvad skulle eksperten så bruges til? :)
Avatar billede webtrance.dk Nybegynder
02. april 2002 - 19:40 #12
Er der nogle der vil have points så svar når i får tid ;)
Avatar billede Slettet bruger
02. april 2002 - 20:08 #13
webtrance.dk >> Ja, det er jo det der er idéen med en validering, at begge felter er udfyldt rigtigt før der kan afsendes.

'tjeck_navn' og 'tjeck_mail' bliver begge defineret som 'ok' hvis inputfelterne 'navn' og 'mail' bliver godkendte.
F.eks;

// Hvis længden af feltet 'navn' er større end 1 sættes 'tjeck_navn' til 'ok'
if (navn.length> 1) {
      tjeck_navn = "ok";
  } else {
      tjeck_navn = "Skriv navn";
  }

- og det samme gør sig gældende for feltet 'mail'
Men brug barklunds eksempel, og tilføj selv flere inputfelter hvis du har behov for dette...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester