Avatar billede luke2009 Nybegynder
30. juni 2009 - 16:41 Der er 9 kommentarer og
1 løsning

hvorfor ikke tjekke?

Hvorfor vil følgende kode ikke tjekke email?

function validate(f){

if ((f.undv[0].checked || f.undv[1].checked || f.undv[2].checked || f.undv[3].checked) && (f.stald[0].checked || f.stald[1].checked || f.stald[2].checked || f.stald[3].checked) && (f.fold[0].checked || f.fold[1].checked || f.fold[2].checked || f.fold[3].checked) && (f.tur[0].checked || f.tur[1].checked || f.tur[2].checked || f.tur[3].checked))
{
// OK 
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  var address = document.forms[this].elements[email].value;
  if(reg.test(address) == false) {
      alert('Invalid Email Adresse');
      return false;
  }

  return true;
}
else
{
// NOT
  alert('Alle fire rækker skal udfyldes.');
  return false;
}
}
Avatar billede erikjacobsen Ekspert
30. juni 2009 - 18:28 #1
Bliver funktionen kaldt? Har du et link til siden?

Kontrol af emails er temmelig langhåret. Det regulære udtryk du angiver vil afvise lovlige emailadresser.
Avatar billede luke2009 Nybegynder
30. juni 2009 - 22:06 #2
Det ligger ikke på nettet.

starten på formen ser sådan ud

<form id="form1" name="form1" method="post" action="evaluate.asp?klub=<%= session("klub") %>" onsubmit="return validate(this);">

og emaildelen ser sådan ud

<input id="email" name="email" type="text" value="Indtast din email" size="30" maxlength="30">

Den første del af koden virker fint og tjekker om radio buttons er tjekkede eller ej.
Men jeg vil også gerne tjekke om emailfeltet er udfyldt korrekt.

men hvordan?
Avatar billede erikjacobsen Ekspert
30. juni 2009 - 22:13 #3
Så må jeg jo til at læse din kode ... ;)

Men
    var address = document.forms[this].elements[email].value;
virker helt malplaceret. Tilgå feltet, som du tilgår de andre felter.
Avatar billede luke2009 Nybegynder
30. juni 2009 - 23:35 #4
mener du

var address = f.email.value;
Avatar billede erikjacobsen Ekspert
30. juni 2009 - 23:42 #5
Ehm, formentlig ... prøv
Avatar billede luke2009 Nybegynder
01. juli 2009 - 11:24 #6
Tak. Det lod til at virke.

Er der iøvrigt nogen måde at tjekke om emailadresse eksisterer ligesom man kan tjekke om en url eksisterer?
Avatar billede erikjacobsen Ekspert
01. juli 2009 - 13:35 #7
Send en mail med et link, og be' om at få klikket på linket. Så ved man mailen når frem.

Du afviser som sagt lovlige emailadresser i dit regulære udtryk - men du får da sikkert de fleste med.
Avatar billede luke2009 Nybegynder
01. juli 2009 - 20:49 #8
Så der er ikke noget fuldstændig sikkert. Jeg ved ikke om noget i kombination med cookies kan bruges.
Men i hvert fald tak for hjælpen med koden.
Læg et svar.
Avatar billede erikjacobsen Ekspert
01. juli 2009 - 21:11 #9
"Så der er ikke noget fuldstændig sikkert." - joh, det er der nu. Du kunne gøre dette

1) Acceptere alt, hvad der ligner en emailadresse - det kunne fx være at checke for et "@" og et "." - og ikke andet
2) Sende en mail med et link.

Selv om du kunne finde det "perfekte regulære udtryk" (r) - så behøver adressen jo ikke eksistere. Jeg kunne fx skrive ved et uheld: erikjacosben@example.orq - det vil dit regulære udtryk ikke kunne fange,

Jeg samler slet ikke på point, tak. Svar selv, og accepter dit eget svar.
Avatar billede luke2009 Nybegynder
01. juli 2009 - 21:34 #10
nej, der findes vel ikke noget emailregister a la cpr registeret.

Nå jeg regner med de fleste er ærlige. Det drejer sig jo trods alt ikke om andet end en afstemning. Men det ville være rat at folk ikke kunne afstemme uhæmmet og at man kunne komme i kontakt med den der har afgivet stemme, skulle det blive nødvendigt.
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