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 ;-)
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!";
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 ;-)