Avatar billede peterterkildsen Nybegynder
10. januar 2001 - 20:07 Der 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();\">&nbsp;Alle
Avatar billede codebase Praktikant
10. januar 2001 - 20:17 #1
hvad sker der når du prøver ??
Avatar billede jakoba Nybegynder
10. januar 2001 - 20:27 #2
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.

mvh JakobA
Avatar billede peterterkildsen Nybegynder
10. januar 2001 - 20:39 #3
codebase:
Jeg får fejlmeddelelsen:
\'search.kommune.0\' er ikke et object

jakoba:
Jeg har forsøgt at escape klammerne, men fejlen opstår stadig.
Fejlen med startklammen opstod, da jeg kopierede koden :-)
Avatar billede jakoba Nybegynder
10. januar 2001 - 21:02 #4
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.
Avatar billede ldanielsen Nybegynder
10. januar 2001 - 21:32 #5
Hvis du sørger for at kun checkboxe hedder noger der starter med \'country\' kan du gøre det:

function selectallcounties(){
  for (n=0;n<document.myForm.elements.length;n++){
    myName = document.myForm.elements[n].name
    if (myName.substring(0,7) == \"country\") document.myForm.elements[n].checked = true
    }
  }
Avatar billede jakoba Nybegynder
10. januar 2001 - 21:33 #6
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.

mvh JakobA
Avatar billede jakoba Nybegynder
10. januar 2001 - 21:56 #7
BuHu 44 sekunder.  Men ldanielsen ret.
Avatar billede peterterkildsen Nybegynder
11. januar 2001 - 20:30 #8
YES! Det virker sq! Mange tak for hjælpen

Mvh. Peter
Avatar billede ldanielsen Nybegynder
11. januar 2001 - 22:35 #9
Godt at høre :o)
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