15. maj 2008 - 10:36
Der er
11 kommentarer og 1 løsning
checkbokse validering
Hej har 5 checkbokse (i en html side) hvoraf mindst en skal udfyldes... name på de 5 er forskellige.. men hvordan validerer jeg at mindst en er udfyldt ? input type=checkbox value=Ja name=CheckboksNavn
Annonceindlæg fra Cognizant
<html> <script type="text/JavaScript"> function validateCheck() { return document.f.chn[0].checked || document.f.chn[1].checked || document.f.chn[2].checked || document.f.chn[3].checked || document.f.chn[4].checked; } </script> <form name="f" action="go.php" onSubmit="return validateCheck();"> <input type="checkbox" value="Ja1" name="chn"><br> <input type="checkbox" value="Ja2" name="chn"><br> <input type="checkbox" value="Ja3" name="chn"><br> <input type="checkbox" value="Ja4" name="chn"><br> <input type="checkbox" value="Ja5" name="chn"><br> <input type="submit"> </form> </html>
Kan ikke få det til at fungere ... desuden skal name taggen være forskellige pr. checkboks... ligesom: <input type="checkbox" value="Ja1" name="checkbox1"><br> <input type="checkbox" value="Ja2" name="checkbox2"><br> <input type="checkbox" value="Ja3" name="checkbox3"><br> <input type="checkbox" value="Ja4" name="checkbox4"><br> <input type="checkbox" value="Ja5" name="checkbox5"><br>
Så må du vel overføre navnene: <script type="text/JavaScript"> function validateCheck(a){ for(var i=0;i<a.length;i++)if(document.f[a[i]].checked)return true; return false } </script> <form name="f" action="go.php" onSubmit="return validateCheck(['checkbox1','checkbox2','checkbox3','checkbox4','checkbox5'])"> <input type="checkbox" value="Ja1" name="checkbox1"><br> <input type="checkbox" value="Ja2" name="checkbox2"><br> <input type="checkbox" value="Ja3" name="checkbox3"><br> <input type="checkbox" value="Ja4" name="checkbox4"><br> <input type="checkbox" value="Ja5" name="checkbox5"><br> <input type="submit"> </form>
Hvis det bare er alle checkboksene i formen, kan du også gøre sådan her: <script type="text/JavaScript"> function validateCheck(o){ o=o.getElementsByTagName("input"); for(var i=0;i<o.length;i++)if(o[i].getAttribute("type")=="checkbox"&&o[i].checked)return true; return false } </script> <form name="f" action="go.php" onSubmit="return validateCheck(this)"> <input type="checkbox" value="Ja1" name="checkbox1"><br> <input type="checkbox" value="Ja2" name="checkbox2"><br> <input type="checkbox" value="Ja3" name="checkbox3"><br> <input type="checkbox" value="Ja4" name="checkbox4"><br> <input type="checkbox" value="Ja5" name="checkbox5"><br> <input type="submit"> </form>
hmmm...synes ikke rigtig det vil virke ... måske er det fordi det er i en cms, hvor der i forvejen ligger et javascript og validerer på én boks vha. validateregexp="\w"... function ValidateForm(element,regExpPattern,message) .... case('checkbox'): { try { var buttonEnabled = false; var elements = document.getElementsByName(element.name); for(var i = 0; i < elements.length; i++) { if(elements[i].checked) { buttonEnabled = true; break; } } result = buttonEnabled; } catch(err) { alert(err.description); result = false; } } .....
Hvis der slet intet sker, så er det nok fordi en anden funktion går ind og dominerer - men du fortæller ikke, hvordan det ikke virker, så det er umuligt for mig at sige.
Hej W13 den validerer ikke på de 5 checkbokse...
Og med validerer, hvad mener du så helt præcist? Mangler du en alert eller noget, for det er ikke kodet ind i vores eksempler.
ja den sender blot formularens øvrige felter....
Ja, så går noget andet vist ind over og sletter vores funktion.
ok...men det er rimeligt ærgerligt...men du skal ihvertfald have de points...
ups..smider du et svar...
Kurser inden for grundlæggende programmering