10. januar 2001 - 20:07Der er
8 kommentarer og 1 løsning
Markering af checkboxes som \'checked\'
Jeg fik for et par dage siden besvaret et spørgsmål, som handlede om, hvordan man afkrydser en lang række checkboxes på én gang. Svaret var såmænd også fint nok, men jeg har problemer med de navne, som jeg giver til mine checkboxe. Jeg vil nemlig meget gerne kalde dem county[0]...county[1]...osv. Dermed vil jeg nemlig umiddelbart kunne bruge værdierne i et PHP-script. Jeg går ud fra, at problemet skyldes, at jeg benytter klammer i navnet. Koden ser således ud:
<script language=\"JavaScript\"> function selectallcounties() { for (i=0;i<<?php echo mysql_num_row($result) ?>;i++) { eval(\'search.kommune\'+i+\'].checked=true;\'); } } </script>
og jeg kalder funktionen således: <INPUT TYPE=\"checkbox\" NAME=\"alle\" onclick=\"selectallcounties();\"> Alle
Hvis javascript ser det prøver den at slå op i dit \"county\" array. så hvis du får en \"county is not an object\" er det nok det. Du kan evt prøve at escape klammerne (eg country\\[0\\] )
der mangler forresten en startklamme [ i den streng du eval()-er. Efter ordet kommune. måske det bare er det.
hvis: search.kommune.0 ??? burde være search.kommune[0] ??? ikke er et objekt ku det type på at fejlen ligger i den måde du skriver select-menuen på siden.
må vi se?
PS: \"search\" er et farligt navn at bruge. det er der andre ting i objektstrukturen der hedder, prøv at ændre det navn.
Hør lige et øjeblik. Hedder det county[0] eller kommune[0] for så er det jo i eval()-en at javascript får lov at kikke på en variabel med [0] som del af navnet. Det går galt. Men du kan addressere checkboxene uden at bruge navne.
document.forms[0].elements[nr]
adresserer de enkelte formelementer, og hvis checkboxe er alt hvad der er i din form ligger de der, adresseret fra index 0 og op. forms[0] gælder for første form på siden, osv.
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.