Avatar billede kagge Nybegynder
12. november 2001 - 15:24 Der er 10 kommentarer og
1 løsning

Validering af form

Hejsa. Jeg er i gang med at validere en form som ikke må have tomme felter. Jeg bruger nedenstående kode:

// Undersøger om feltet er tomt!
  function tom(afgivetvaerdi) {
    if(afgivetvaerdi==\"\") {return false}
    return true
  }

// Validering af forms
  function validering(form) {
    if(!tom(form.vbi.value)) {alert(\"fejlmed. 1\")
    form.vbi.focus()
    return false
    }
    if(!tom(form.vsb.value)) {alert(\"Fejlmed. 2\")
      form.vsb.focus()
      return false
    }
    if(!tom(form.vpo.value)) {alert(\"Fejlmed. 3\")
      form.vpo.focus()
      return false
    }
    if(!tom(form.vda.value)) {alert(\"Fejlmed. 4\")
      form.vda.focus()
      return false
    }
    if(!tom(form.vti.value)) {alert(\"fejlmed. 5\")
      form.vti.focus()
      return false
    }
    if(!tom(form.vno.value)) {alert(\"fejlmed. 6\")
      form.vno.focus()
      return false
    }
  }

Ovenstående er enten tekstfelter eller listevalg. Nu skal jeg så tjecke om en \"Radio button\" er tom!! Den består af 3 valgmuligheder, hvor man skal vælge den ene. Hvordan validerer man en \"Radio button\", så man er sikker på at brugeren har valgt en.

<Input name er i øvrigt \"van\">.

Koden skal helst passe til den måde jeg har sat ovenstående kode op.

Håber i forstår.
Avatar billede Slettet bruger
12. november 2001 - 15:31 #1
Du skal nok bruge \"frm\" i stedet for \"form\", da den kan \"misforstås\" af browseren!

tjek = 0;
for (i = 0; i < frm.van.length; i++) {
if (frm.van[i].checked) tjek++;
}
if (tjek != frm.van.length - 1) return false;
Avatar billede Slettet bruger
12. november 2001 - 15:37 #2
Forudsat, at du vælger at bruge \"frm\" i stedet for \"form\", som jeg foreslog!

Men er det ikke meget nemmere at sætte den øverste radiobutton til at være checked fra starten??
<input type=\"radio\" name=\"van\" value=\"1\" checked><br>
<input type=\"radio\" name=\"van\" value=\"2\"><br>
<input type=\"radio\" name=\"van\" value=\"3\">
Avatar billede kagge Nybegynder
12. november 2001 - 15:47 #3
Jeg prøver lige at se om jeg kan få det til at virke på den måde du har beskrevet, så vender jeg lige tilbage bagefter.
Avatar billede Slettet bruger
12. november 2001 - 16:07 #4
Ups, der er lige en fejl:
if (tjek != frm.van.length - 1) return false;
... skal ændres til:
if (tjek != frm.van.length) return false;
Avatar billede kagge Nybegynder
12. november 2001 - 16:08 #5
Hvordan skal jeg kæde din kode sammen med min!!

tjek = 0;
for (i = 0; i < frm.van.length; i++) {
if (frm.van[i].checked) tjek++;
}
if (tjek != frm.van.length - 1) return false;

Jeg skal jo have hæftet en fejlmeddelelse på din kode og den skal jo også kaldes....
Avatar billede Slettet bruger
12. november 2001 - 16:12 #6
tjek = 0;
for (i = 0; i < frm.van.length; i++) {
if (frm.van[i].checked) tjek++;
}
if (tjek != frm.van.length) {
alert(\"Fejl med. 7!\");
return false;
}

... indsættes nederst!
Avatar billede kagge Nybegynder
12. november 2001 - 16:21 #7
Nu begynder det så småt at virke :)

Nu kommer den med fejlmed. når der ikke er valgt en af mulighederne, men den kommer også, når man har valgt en.
Avatar billede fri-hash Nybegynder
21. december 2001 - 18:35 #8
for mig at se, ser det ud som om den kun tester om første er valgt ... når i er 0 kigger den på første og hvis den er checked lægger den en til tjek, men hvis det er den anden eller derefter (index 1, 2) der er valgt lægges der ikke noget til, tjek når derfor ikke op på van.length og giver derfor fejl

..eller er jeg helt galt på den?
Avatar billede fri-hash Nybegynder
21. december 2001 - 18:38 #9
ja, det er jeg vist ...
if (tjek != frm.van.length) skal da vist være f (tjek != 1) , da kun 1 radiobutton kan være valgt og og tjek derfor højst kan blive talt op til 1
Avatar billede Slettet bruger
28. december 2001 - 13:32 #10
fri-hash har ret! Det er sådan det går, når man ikke ser sig for!
Dette script kræver ikke så mange ressourcer:

fundet = false;
for (i = 0; i < frm.van.length; i++) {
if (frm.van[i].checked) {
fundet = true;
break;
}
}
if (!fundet) {
alert(\"Fejlmed. 7!\");
return false;
}
Avatar billede fri-hash Nybegynder
17. februar 2002 - 21:23 #11
måske tid til at lukke spørgsmålet?
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