Avatar billede lordnelson Seniormester
04. januar 2007 - 16:58 Der er 6 kommentarer og
1 løsning

en til mclemens - set focus

Hej igen
Jeg har en anden form med nogle flere felter i , måske kan du huske den valideringen ser sådan ud:
<script type="text/javascript">
function valider(){

  navnerr="Formularen blev ikke afsendt grundet:"; // Start tekst til fejl

  navne=document.getElementsByName("navn"); // Tildeler navne array af elementer med name="navn"

  for(i=0;i<navne.length;i++){ // Gennemløber navne array af elementer
    if(navne[i].value=="")navnerr+="\nDeltager: "+(i+1)+" skal udfyldes";
   
// Hvis navnet ikke indeholder registreres fejl
  }
if(document.getElementsByName("postnr")[0].value=="")navnerr+="\nPostnummer skal udfyldes"; // Hvis kontakt ikke indeholder registreres fejl
if(document.getElementsByName("adresse1")[0].value=="")navnerr+="\nAdresse1 skal udfyldes"; // Hvis adresse ikke indeholder registreres fejl
  if(navnerr=="Formularen blev ikke afsendt grundet:")return true; // Hvis start tekst er standard så afsend
  else{
    alert(navnerr); // ved fejl så alert
   
    return false; // og stop afsendelse
   
  }
}
</script>

Har prøvet at lave det samme med set focus på felterne men det går i ged, måske du kan hjælpe igen?

LN
Avatar billede mclemens Nybegynder
04. januar 2007 - 17:51 #1
2. Regler for brug af Eksperten.dk
- 1. Det er ikke tilladt at:
- - 16 stille spørgsmål specifikt til én eller flere bestemte personer, med mindre spørgsmålet er på 0 point eller hvis der er tale om lovlig pointoverførsel

... Så læg selv et svar og behold pointene - eksempel:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title><meta name="robots" content="index, follow">

<script type="text/javascript">
function valider(){

  var elmf=false,navnerrs=navnerr="Formularen blev ikke afsendt grundet:"; // Start tekst til fejl

  navne=document.getElementsByName("navn"); // Tildeler navne array af elementer med name="navn"

  if(document.getElementsByName("postnr")[0].value==""){
    navnerr+="\nPostnummer skal udfyldes"; // Hvis kontakt ikke indeholder registreres fejl
    if(!elmf)elmf=document.getElementsByName("postnr")[0]; // Sæt focus til første element med fejl
  }

  if(document.getElementsByName("adresse1")[0].value==""){
    navnerr+="\nAdresse1 skal udfyldes"; // Hvis adresse ikke indeholder registreres fejl
    if(!elmf)elmf=document.getElementsByName("adresse1")[0]; // Sæt focus til første element med fejl
  }

  for(i=0;i<navne.length;i++){ // Gennemløber navne array af elementer

    if(navne[i].value==""){
      // Hvis navnet ikke indeholder noget registreres fejl
      navnerr+="\nDeltager: "+(i+1)+" skal udfyldes";
      if(!elmf)elmf=navne[i]; // Sæt focus til første element med fejl
    }

  }

  if(navnerr==navnerrs)return true; // Hvis start tekst er standard så afsend

  else{
    alert(navnerr); // ved fejl så alert
    elmf.focus(); // Fokuser på første fejl
    return false; // og stop afsendelse
  }

}
</script>

</head><body>
<form method="get" action="2.html" onsubmit="return valider();">
postnr:<input type="text" name="postnr"><br>
adresse:<input type="text" name="adresse1"><br>
1:<input type="text" name="navn"><br>
2:<input type="text" name="navn"><br>
3:<input type="text" name="navn"><br>
4:<input type="text" name="navn"><br>
5:<input type="text" name="navn"><br>
<input type="submit" value="afsend"><br>
</form>

</body></html>
Avatar billede mclemens Nybegynder
04. januar 2007 - 17:54 #2
(reglerne finder forresten her: http://www.eksperten.dk/regler.phtml )

...

Med name på formen går alt lettere:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title><meta name="robots" content="index, follow">

<script type="text/javascript">
function valider(){

  f=document.formularnavn;

  var elmf=false,navnerrs=navnerr="Formularen blev ikke afsendt grundet:"; // Start tekst til fejl

  navne=f.navn; // Tildeler navne array af elementer med name="navn"

  if(f.postnr.value==""){
    navnerr+="\nPostnummer skal udfyldes"; // Hvis kontakt ikke indeholder registreres fejl
    if(!elmf)elmf=f.postnr; // Sæt focus til første element med fejl
  }

  if(f.adresse1.value==""){
    navnerr+="\nAdresse1 skal udfyldes"; // Hvis adresse ikke indeholder registreres fejl
    if(!elmf)elmf=f.adresse1; // Sæt focus til første element med fejl
  }

  for(i=0;i<navne.length;i++){ // Gennemløber navne array af elementer

    if(navne[i].value==""){
      // Hvis navnet ikke indeholder noget registreres fejl
      navnerr+="\nDeltager: "+(i+1)+" skal udfyldes";
      if(!elmf)elmf=navne[i]; // Sæt focus til første element med fejl
    }

  }

  if(navnerr==navnerrs)return true; // Hvis start tekst er standard så afsend

  else{
    alert(navnerr); // ved fejl så alert
    elmf.focus(); // Fokuser på første fejl
    return false; // og stop afsendelse
  }

}
</script>

</head><body>
<form method="get" action="2.html" onsubmit="return valider();" name="formularnavn">
postnr:<input type="text" name="postnr"><br>
adresse:<input type="text" name="adresse1"><br>
1:<input type="text" name="navn"><br>
2:<input type="text" name="navn"><br>
3:<input type="text" name="navn"><br>
4:<input type="text" name="navn"><br>
5:<input type="text" name="navn"><br>
<input type="submit" value="afsend"><br>
</form>

</body></html>
Avatar billede lordnelson Seniormester
04. januar 2007 - 19:35 #3
av Undskyld
det havde jeg lige overset

LN
Avatar billede lordnelson Seniormester
04. januar 2007 - 19:36 #4
Men takker mange gange

LN
Avatar billede mclemens Nybegynder
04. januar 2007 - 19:42 #5
Helt ok ;)
...
Velbekom :)
Avatar billede roenving Novice
22. januar 2007 - 05:33 #6
-- og en nem lille (og næsten uden betydning !-) optimering:

  if(!elmf)return true; // Hvis start tekst er standard så afsend
/*Ændret til: Hvis der ikke er et element, der skal have fokus !-) */
Avatar billede mclemens Nybegynder
22. januar 2007 - 10:29 #7
Fin rettelse :)

Hvis du vælger at bruge forkortelsen kan

  var elmf=false,navnerrs=navnerr="Formularen blev ikke afsendt grundet:"; // Start tekst til fejl

også rettes til:

  var elmf=false,navnerr="Formularen blev ikke afsendt grundet:"; // Start tekst til fejl
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