Avatar billede lklingenberg Nybegynder
01. november 2003 - 12:53 Der er 2 kommentarer og
2 løsninger

Validering af checkbox (dynamisk antal)

Hi E,

I en valideringskode skal jeg have valideret om mindst en af flere checkboxe er afmærket. Antallet af checkboxe er dynamisk bestemt (database).

Nedenstående er, hvad jeg i min famlen ud i js har kunnet fremstille, men, æh, den kræver, at alle checkboxe skal være afmærket, og det går jo ikke (scriptet er en del af et længere valideringsscript, hvor frm, i og errorMsg er definerede variable).

for(j=1; frm.elements["chkTo"+j]; j++){
  if(!frm.elements["chkTo"+j].checked){
    errorMsg+="\nDer skal vælges mindst en modtager!";
    i++
  }
}

'or' operatoren skal vel indbygges på en eller anden måde, men jeg har bare ikke js viden nok til at gøre det ordentligt ;-)
Avatar billede skovenborg Nybegynder
01. november 2003 - 13:43 #1
Du kan også gøre det på en anden måde:
for (j=1;frm.elements["chkTo"+j];j++)
{
if (frm.elements["chkTo"+j].checked) break;
else {
  errorMsg += "\nDer skal vælges mindst en modtager!";
  i++;
}
}

Den vil dog stadig melde fejl hvis den falder over en checkbox som ikke er checked før en som er. Hvis det er et problem kan du gøre sådan:
var chkError = true;
for (j=1;frm.elements["chkTo"+j];j++)
{
if (frm.elements["chkTo"+j].checked){chkError=false; break;}
else i++;
}
if (chkError) errorMsg+="\nDer skal vælges mindst en modtager!";
Avatar billede lklingenberg Nybegynder
01. november 2003 - 14:03 #2
Den sidste funktion virker næsten ;-) Funktionen gav en fejlmeddelelse uanset, om der var afmærket en box eller ej.

Jeg lavede lidt om på den og nu virker den (flyttede i++:

var chkError=true;
for(j=1;frm.elements["chkTo"+j];j++){
  if(frm.elements["chkTo"+j].checked){chkError=false; break;
  }
}
           
if (chkError){
  errorMsg+="\nDer skal vælges mindst en modtager!";
  i++;
}

Gi'r du et svar, så får du 14 pointz (det sidste point beholder jeg for at flytte i++  he he ;-)
Avatar billede skovenborg Nybegynder
01. november 2003 - 14:11 #3
okay - viste ikke lige hvad i++ skulle til for ud over du brugte den et eller andet sted i scriptet.
Avatar billede lklingenberg Nybegynder
01. november 2003 - 14:31 #4
TAK for hjælpen!
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