Avatar billede apo Praktikant
15. marts 2004 - 21:01 Der er 3 kommentarer og
1 løsning

Hjælp - Validering af bestillingsform

Hej,

Jeg er ikke den store javascripter (mest til ASP) og efter gentagende forsøg med at få et "tutorial" script til at fungere, søger jeg nu hjælp her.

Jeg har brug for et javascript til en brugervenlig validering af bestillingsform indeholdende følgende:

Antal1 (input) <-- Skal indeholde mindst 1 tal

Valgmulighed1 (radiobutton)
Valgmulighed2 (radiobutton)
---------------------------
Én af ovenstående skal være markeret.

Fornavn (input) <-- Skal indeholde min. 2 og maks. 50 bogstaver.
Efternavn (input) <-- Skal indeholde min. 2 og maks. 50 bogstaver.
Adresse (input) <-- Skal indeholde min. 2 og maks. 50 bogstaver.
Postnr (input) <-- Skal indeholde min. 4 og maks. 4 tal.
Bynavn (input) <-- Skal indeholde min. 2 og maks. 50 bogstaver.
Telefon (input) <-- Skal indeholde min. 8 og maks. 8 tal.
Epostadresse (input) <-- Skal indeholde @ og .

Accept (checkbox) <-- Skal være markeret.

Jeg håber at der findes en venlig ekspert der vil hjælpe mig :-)

Apo
----------------------
Jeg har sat pointgivningen til svær (60 points), da "hjælpen" vil bestå i at udarbejde et færdigt script til mig :-/
Avatar billede kimovitch Nybegynder
15. marts 2004 - 22:27 #1
Hej Apo.

Detteher skulle virke. Bemærk at jeg har omdøbt både Valgmulighed1 og Valgmulighed2 til Valgmulighed (med værdierne 1 og 2). De skal hedde det samme for at virke som radiobuttons i samme gruppe.

Kald den med <form onSubmit="return validate(this);">

m.v.h. Kim

<script language=javascript>
function checkTal(tal,maxL,minL){
  if(maxL > 0 && tal.length > maxL){
      return false;
  }
  if(minL > 0 && tal.length < minL){
      return false;
  }
  for(i = 0; i < tal.length; i++){
      if(!(tal.charAt(i) >= 0 && tal.charAt(i) <= 9)){
        return false;
      }
  }
  return true;
}

function meldFejl(elem,msg){
  alert(msg);
  elem.focus();
  elem.select();
}

function validate(f){
  e = f.elements;
  if(!(checkTal(e.Antal1.value,0,1))){
      meldFejl(e.Antal1,"Du skal indtaste et antal");
      return false;
  }
  radioSelected = false;
  for (i=0; i< e.Valgmulighed.length; i++) {
      if (e.Valgmulighed[i].checked) {
        radioSelected = true;
        break;
      }
  }

  if(!(radioSelected)){
      alert("Du skal vælge én af de to muligheder");
      return false;
  }

  if(e.Fornavn.value.length < 2 || e.Fornavn.value.length > 50){
      meldFejl(e.Fornavn,"Fornavnet skal være mellem 2 og 50 bogstaver");
      return false;
  }
  if(e.Efternavn.value.length < 2 || e.Efternavn.value.length > 50){
      meldFejl(e.Efternavn,"Efternavnet skal være mellem 2 og 50 bogstaver");
      return false;
  }
  if(e.Adresse.value.length < 2 || e.Adresse.value.length > 50){
      meldFejl(e.Adresse,"Adressen skal være mellem 2 og 50 bogstaver");
      return false;
  }
  if(!(checkTal(e.Postnr.value,4,4))){
      meldFejl(e.Postnr,"Postnummeret skal være på 4 cifre.");
      return false;
  }
  if(e.Bynavn.value.length < 2 || e.Bynavn.value.length > 50){
      meldFejl(e.Bynavn,"Bynavnet skal være mellem 2 og 50 bogstaver");
      return false;
  }
  if(!(checkTal(e.Telefon.value,8,8))){
      meldFejl(e.Telefon,"Indtast et telefonnr. på 8 cifre.");
      return false;
  }
  if(e.Epostadresse.value.indexOf("@") < 1 || e.Epostadresse.value.indexOf(".") < 1){
      meldFejl(e.Epostadresse,"Der er fejl i epostadressen");
      return false;
  }

  if(!(e.Accept.checked)){
      alert("Du skal markere at du accepterer");
      return false;
  }
  return true;
}
</script>
Avatar billede apo Praktikant
15. marts 2004 - 22:51 #2
Hej kimovitch,

Yes - Det virker!!! (efter alle de mange timers forgæves forsøg med andre scripts)

Smid et svar, så er der points til dig :-)

Tak for hjælpen!

Apo
Avatar billede kimovitch Nybegynder
16. marts 2004 - 07:16 #3
Herligt ;-)
Kim
Avatar billede apo Praktikant
20. marts 2004 - 00:30 #4
Velbekomme og endnu engang tak for hjælpen :o)

/lukker

Apo
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