Avatar billede sp Nybegynder
04. maj 2003 - 13:59 Der er 26 kommentarer og
1 løsning

validering af form med checkboxe

Hej.

Jeg vil gerne via onsubmit validere en form. Hvordan undersøger Javascript om mindst en ud af mange checkboxe er checked?
Avatar billede sp Nybegynder
04. maj 2003 - 14:01 #1
Den behøver ikke vide hvilke. Jeg har flere checkboxe. Og mindst en skal være checked ud af mange.
Avatar billede -master-d- Nybegynder
04. maj 2003 - 14:01 #2
Du giver dine checkbokse en value og checker om den value er korrekt

ex.

if (document.formnavn.checkboksnavn.value == "klikket"){alert("du klikkede på min checkboks")}
Avatar billede -master-d- Nybegynder
04. maj 2003 - 14:02 #3
ex. på checkboksen.

<input type="ckeckbox" name="checkboksnavn" value="klikket">
Avatar billede sp Nybegynder
04. maj 2003 - 14:09 #4
jeg kan ikke bruge den til noget. Det ville jeg selv have lavet. Nej jeg skal ikke give den en value. Jeg skal finde ud af om nogle af mine checkboxe er checked. Det drejer sig om flere, ikke en enkel.
Avatar billede sp Nybegynder
04. maj 2003 - 14:11 #5
Name og value er fuldstændig lige meget!
Avatar billede sp Nybegynder
04. maj 2003 - 14:12 #6
Jeg gider ikke at sidde og skrive en masse if sætninger for hver checkbox. Der er så mange, og der kan opstå fejl, hvis en ikke kommer med i scriptet.
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:15 #7
Inspiration: http://www.eksperten.dk/spm/348022
du kan næsten skrive af
Avatar billede sp Nybegynder
04. maj 2003 - 14:19 #8
Nej den skal ikke checke alle checkbox det har jeg en der gør i forvejen. Den skal blot undersøge om mindst en der checked
Avatar billede sp Nybegynder
04. maj 2003 - 14:23 #9
Kan man lave lidt om på løkken så den bare undersøger om der er en der er checked og returnere true? Hvordan gør man det?
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:23 #10
Det er de jeg mener med "næsten" ;)
Avatar billede sp Nybegynder
04. maj 2003 - 14:25 #11
hmmm. Jeg er bare stået af.
Avatar billede sp Nybegynder
04. maj 2003 - 14:26 #12
Min egen, jeg har fået herinde, ser sådan ud:

function Checkall(elm, f){
var fEs = f.elements;
for (i=0; i<fEs.length; i++) {
  if ( fEs[i].type=="checkbox" ) {
    fEs[i].checked = (elm.checked)? true : false;
    }
  }
}
Men jeg har prøvet at skrive om. Jeg er bare stået af.
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:32 #13
Nu forstår jeg ikke. Hvis du allerede havde den stump kode,
hvorfor siger du det så ikke i spørgsmålet? Eller har jeg misforstået?
Prøv (utestet)



function Checkall(elm, f){
var fEs = f.elements;
for (i=0; i<fEs.length; i++) {
  if ( fEs[i].type=="checkbox"  && fEs[i].checked ) {
    return true;
  }
}
return false;
}

og så bruger du ikke elm-paramtetren til noget
Avatar billede sp Nybegynder
04. maj 2003 - 14:46 #14
Jo men den kan jo ikke bruges direkte
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:47 #15
direkte?
Avatar billede sp Nybegynder
04. maj 2003 - 14:49 #16
Error: elements is null or not an object
Avatar billede sp Nybegynder
04. maj 2003 - 14:50 #17
Den kode jeg har kan ikke bruges til det som jeg ønsker
Avatar billede sp Nybegynder
04. maj 2003 - 14:53 #18
Jeg er med og kan godt forstå hvad der står nu, men det giver en fejlmelding og virker ikke
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 14:55 #19
Funktionen skal jo kaldes korrekt, ikke?
Avatar billede sp Nybegynder
04. maj 2003 - 14:56 #20
jeg har disse 2 scripts på siden. Det øverste virker kun hvis jeg sletter det nederste på siden, men ikke omvendt fandt jeg lige ud af.

function Checkall(elm, f){
var fEs = f.elements;
for (i=0; i<fEs.length; i++) {
  if ( fEs[i].type=="checkbox" ) {
    fEs[i].checked = (elm.checked)? true : false;
    }
  }
}

function Confirmdelete(f){
var fEs = f.elements;
  for (i=0; i<fEs.length; i++) {
    if ( fEs[i].type=="checkbox"  && fEs[i].checked ) {
      if(confirm("Ønsker du at slette dem permanent?")){
      return true
      }
    }
  }
  return false;
}
Avatar billede sp Nybegynder
04. maj 2003 - 14:59 #21
Hov nu virker det hele!

Jeg ændrede onsubmit="return Confirmdelete(this.form);" til
onsubmit="return Confirmdelete(this);"

Skal du ikke have nogle point?
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 15:06 #22
*g* Jeg ved snart ikke - du har jo lavet det meste arbejde.... :)
Men hvis du synes...

En anden gang: du får hurtigere hjælp hvis du viser hvad du har
af kode. Vi kan jo ikke gætte hvad der står rundt onkring
Avatar billede sp Nybegynder
04. maj 2003 - 16:12 #23
Jeg skulle nu lige have en til at "knække koden".
Jeg vidste ikke om jeg kunne bruge den kode til den anden funktion også
Avatar billede sp Nybegynder
04. maj 2003 - 16:20 #24
Alternativet ville være at jeg oprettede et spm. til næsten ingen point. Ville jeg så få nogle svar?
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 16:24 #25
Js, da, jeg er da ligeglad med point. Kigger sjældent på dem...
Avatar billede sp Nybegynder
04. maj 2003 - 16:35 #26
Men du har jo også mange:-)
Avatar billede sp Nybegynder
04. maj 2003 - 16:38 #27
Nåh det var jeg slet ikke klar over
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