Avatar billede ssv Nybegynder
24. november 2008 - 18:27 Der er 13 kommentarer og
1 løsning

Bestemt indhold i input

Hello.

Jeg skal bruge en lille javascript-validering af emails. Hvis et input skal indeholde "@" og "." før det kan submittes, hvordan skal javascriptet så se ud? Og indeholder inputtet _ikke_ de tegn skal brugeren alertes med en besked.
Avatar billede showsource Seniormester
24. november 2008 - 18:43 #1
function tjek_mail() {

    var email = document.forms['glemtpass'].elements['email'];
    var emailreg=/^.+@.+\..{2,4}$/

    if (!email.value.match(emailreg)) {
        alert("Indtast en gyldig email adresse !!!")
        email.focus();
        return false;
    }

    return true;
}

Men den tager jo så også ethvert tegn, blot der er et @ og et punktum før de sidste 2 til 4 tegn.

En egentlig validering skal du gøre serverside
Avatar billede ssv Nybegynder
24. november 2008 - 19:01 #2
Hvordan skal koden se ud? Det spiller ikke med min kode her :-)
Avatar billede olebole Juniormester
24. november 2008 - 23:24 #3
<ole>

function tjek_mail(f) {

    var email = f.email;
    var emailreg=/^.+@.+\..{2,4}$/

    if (!email.value.match(emailreg)) {
        alert("Indtast en gyldig email adresse !!!")
        email.focus();
        return false;
    }

    return true;
}

<form ......... onsubmit="return tjek_mail(this)">

/mvh
</bole>
Avatar billede ssv Nybegynder
25. november 2008 - 10:25 #4
Tak for dit svar, olebole. Jeg har flere valideringer på samme form, men kun én af valideringerne "slår igennem" - så enten virker valideringen af mine andre felter eller også virker email-valideringen. Er det onsubmit'en det er noget galt med?

onsubmit="return validateForm(this, ['firstName', 'adresse', 'by'], ['Ups! Du mangler at udfylde dit navn', 'Du mangler en adresse', 'Du skal lige indtaste din by']); return tjek_mail(this)">
Avatar billede olebole Juniormester
25. november 2008 - 10:30 #5
Da du returnerer din første handler, kommer du jo aldrig i nærheden af den anden. Kan du ikke samle dem til én funktion?
Avatar billede ssv Nybegynder
25. november 2008 - 10:40 #6
Jeg skal blankt indrømme at jeg ikke har det fjerneste forstand på javascript. Jeg bruger "brudstykker" fra koder bla. roenving og w13 har lavet til mig. I alt bruger jeg 3 javascripts:

<script type="text/javascript">
function validateForm(oForm,aFields,aErrors){
for (var i=0; i<aFields.length; i++) {
    if (oForm[aFields[i]].value == oForm[aFields[i]].defaultValue || oForm[aFields[i]].value == "") {
      alert(aErrors[i]);
      oForm[aFields[i]].focus();
      return false;
    }
  }
  return true;
}
</script>
<script type="text/javascript">
function visDiv(f){
  if(f.firstName.value != "" && f.eMail.value != "")
    document.getElementById("minDiv").style.display = "block";
}
</script>
<script type="text/javascript">
function tjek_mail(f) {

    var eMail = f.eMail;
    var emailreg=/^.+@.+\..{2,4}$/

    if (!eMail.value.match(emailreg)) {
        alert("Indtast en gyldig email adresse !!!")
        eMail.focus();
        return false;
    }

    return true;
}
</script>

--
Og på formen ligger så den onsubmit der skal validere email-inputtet og de resterende inputs. Kan man samle de 3 javascripts i én? Eller hvordan fungerer det?
Avatar billede ssv Nybegynder
26. november 2008 - 10:35 #7
Nogen der kan hjælpe? :-)
Avatar billede ssv Nybegynder
27. november 2008 - 11:25 #8
Anyone? ;-)
Avatar billede roenving Novice
29. november 2008 - 11:43 #9
<script type="text/javascript">
function validateForm(oForm,aFields,aErrors){
for (var i=0; i<aFields.length; i++) {
    if (oForm[aFields[i]].value == oForm[aFields[i]].defaultValue || oForm[aFields[i]].value == "") {
      alert(aErrors[i]);
      oForm[aFields[i]].focus();
      return false;
    }
  }
  return true;
}
function visDiv(f){
  if(f.firstName.value != "" && f.eMail.value != "")
    document.getElementById("minDiv").style.display = "block";
}
function tjek_mail(f) {

    var eMail = f.eMail;
    var emailreg=/^.+@.+\..{2,4}$/

    if (!eMail.value.match(emailreg)) {
        alert("Indtast en gyldig email adresse !!!")
        eMail.focus();
        return false;
    }

    return true;
}
</script>

onsubmit="return validateForm(this, ['firstName', 'adresse', 'by'], ['Ups! Du mangler at udfylde dit navn', 'Du mangler en adresse', 'Du skal lige indtaste din by']) && tjek_mail(this)">
Avatar billede ssv Nybegynder
04. december 2008 - 15:09 #10
Det er super. Vil i dele? Smid et svar så :-)
Avatar billede olebole Juniormester
04. december 2008 - 15:38 #11
Jeg hopper over denne gang, men tak for tilbudet  *<|;o)
Avatar billede pidgeot Nybegynder
04. december 2008 - 15:41 #12
(Vi ser bort fra at den sidste del af e-mail adressen ikke behøver være begrænset til 4 tegn...)

*går igen*
Avatar billede roenving Novice
07. december 2008 - 10:10 #13
Hrm, det er vel også for dumt ikke at regulere regExp'en, så den lige holder de mest elementære steder:

    var emailreg=/^.*@.+\.[a-z]{2,6}$/

(Det, der kommer foran @-tegnet må ifølge nyeste standard for mail-adresser (rfc2822) ikke checkes af andre end mail-hosten, og der findes nu tld'er (top-level domains) på op til 6 bogstaver, f.eks. .museum !-)

-- els velbekomme '-)
Avatar billede roenving Novice
19. december 2008 - 16:16 #14
-- og tak for point ;~}

PS. Rfc'en er nummer 2821 !-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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