Avatar billede mekaniker Nybegynder
11. juni 2003 - 12:09 Der er 8 kommentarer og
1 løsning

Validering af to email felter

Jeg har en side hvor brugere kan tilmelde sig en mailinglist.
Der er 2 felter, det ene er til brugere fra DK og den anden er til brugere fra Udlandet.

Den skal vise fejlmeddelelse til brugeren og den skal ikke submitte formen, hvis han skriver i begge felter.
evt. fejlmed. "Det er ikke tilladt at skrive i begge felter".

Den skal så validere email i det felt der er skrevet i.
evt. fejlmed. "ugyldig email !"

Hvis alt går godt skal den selvfølgelig submitte formen,

Jeg har selv prøvet med følgende med uden held.

<script type="text/javascript">
function validering()
    {
    if ((document.mailing.dk.value.length != 0) && (document.mailing.ud.value.length != 0))
          {
          alert('Only type in one off the fields, please !');
        document.mailing.dk.focus();
        return false;
        }
   
    var reEmail = /^[a-z0-9\-_]+(\.[a-z0-9\-_]+)*@([a-z0-9\-_]+\.)+[a-z0-9\-_]{2,4}$/i;
 
      if (!reEmail.test(document.mailing.dk.value))
        {
        alert('Unvalid Email !');
        document.mailing.dk.focus();
        return false;
        }
   
    if (!reEmail.test(document.mailing.ud.value))
        {
        alert('Unvalid Email !');
        document.mailing.ud.focus();
        return false;
        }       
    return true;  // det er en ok email-adresse
}
</script>

<form action="input.asp" method="post" name="mailing" onsubmit="return validering();">
<input name="dk" type="text" class="inputbox_text">
<input name="ud" type="text" class="inputbox_text">
<input type="submit" name="Submit" value=" OK " class="button">
</form>
Avatar billede Slettet bruger
11. juni 2003 - 12:16 #1
Hvad er fejlen?
Avatar billede mekaniker Nybegynder
11. juni 2003 - 12:20 #2
selvom jeg skriver den ene email rigtigt, så siger den at den anden ikke er gyldig.
Avatar billede Slettet bruger
11. juni 2003 - 12:23 #3
Ok, skriv:

function validering() {
  frm = document.mailing;
  if (frm.dk.value != "" && frm.ud.value != "") {
    alert("Udfyld kun de ene af felterne, tak!");
    return false;
  }
  if (frm.dk.value == "" && frm.ud.value == "") {
    alert("Udfyld et af felterne, tak!");
    return false;
  }
  reEmail = /^[a-z0-9\-_]+(\.[a-z0-9\-_]+)*@([a-z0-9\-_]+\.)+[a-z0-9\-_]{2,4}$/i;
  if (frm.dk.value != "" && !reEmail.test(frm.dk.value)) {
    alert("Ugyldig e-mail!");
    frm.dk.focus();
    return false;
  }
  if (frm.ud.value != "" && !reEmail.test(frm.ud.value)) {
    alert("Ugyldig e-mail!");
    frm.ud.focus();
    return false;
  }
  return true;
}
Avatar billede Slettet bruger
11. juni 2003 - 12:24 #4
I øvrigt smartere, hvis du laver disse linjer:

function validering() {
  frm = document.mailing;

... til denne:

function validering(frm) {

... og skriver dit form-tag således:

<form action="input.asp" method="post" name="mailing" onsubmit="return validering(this);">
Avatar billede roenving Novice
11. juni 2003 - 12:25 #5
if ((document.mailing.dk.value.length != 0) && (!reEmail.test(document.mailing.dk.value)))
Avatar billede mekaniker Nybegynder
11. juni 2003 - 12:27 #6
Det virker perfekt, men kan man ikke lige tilføje at den ikke skal submitte formen, hvis der ikke er skrevet i nogle af felterne
Avatar billede roenving Novice
11. juni 2003 - 12:29 #7
return false betyder, at der ikke bliver submittet !o)
Avatar billede mekaniker Nybegynder
11. juni 2003 - 12:35 #8
>> Phoenixy

Tak for hjælpen - Læg et svar
Avatar billede Slettet bruger
11. juni 2003 - 12:36 #9
Svar.

I mit eksempel har jeg også tilføjet den med, at der skal skrives i ét (og kun ét) af felterne.
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