Avatar billede rane Nybegynder
30. oktober 2006 - 13:54 Der er 23 kommentarer og
1 løsning

Checkbox deaktivering

Jeg har 3 x 20 checkbokse der bliver genereret dynamisk fra data i en database. Det ser således ud:

<input type="checkbox" name="23-11-2006#19#" value="1"  />
<input type="checkbox" name="23-11-2006#19#" value="2"  />
<input type="checkbox" name="23-11-2006#19#" value="3"  />

<input type="checkbox" name="24-11-2006#20#" value="1"  />
<input type="checkbox" name="24-11-2006#20#" value="2"  />
<input type="checkbox" name="24-11-2006#20#" value="3"  />

osv.

Som i kan se, er der tale om en sammensætning mellem en dato or et ID.  Men men....man skal kun kunne vælge én (1) af disse 3 muligheder ved hver dato. 

Kan man ved onclick, deaktivere de øvrige checkbokse i den pågældende checkbox-group??  Og hvordan?
Avatar billede fennec Nybegynder
30. oktober 2006 - 13:58 #1
Lav det om til radio buttens i stedet:
<input type="radio" name="23-11-2006#19#" value="1"  />
<input type="radio" name="23-11-2006#19#" value="2"  />
<input type="radio" name="23-11-2006#19#" value="3"  />

<input type="radio" name="24-11-2006#20#" value="1"  />
<input type="radio" name="24-11-2006#20#" value="2"  />
<input type="radio" name="24-11-2006#20#" value="3"  />
Avatar billede rane Nybegynder
30. oktober 2006 - 13:58 #2
Sådan var koden tidligere - men der brokkede folk sig over, at man ikke kunne resette et valg med mindre man resettede HELE formen :/
Avatar billede olebole Juniormester
30. oktober 2006 - 14:13 #3
<ole>

Så er det nok fordi, du havde lavet en eller flere andre uhensigtsmæssigheder. Hvad er det, du skal lave og hvordan?

/mvh
</bole>
Avatar billede fennec Nybegynder
30. oktober 2006 - 14:20 #4
Lav en reset knap ved hver, og navngiv dine elementer rigtig:
<input type="radio" name="a23_11_2006_19_" value="1" />
<input type="radio" name="a23_11_2006_19_" value="2"  />
<input type="radio" name="a23_11_2006_19_" value="3"  />
<input type="Button" value="reset" onClick="tmp=this.form.a23_11_2006_19_;tmp(0).checked=tmp(1).checked=tmp(2).checked=false;return false;">
Avatar billede rane Nybegynder
30. oktober 2006 - 14:27 #5
ole, det er en bestillingsside hvor man kan vælge mellem 3 retter hver dag, men kun én ret om dagen...altsammen i en 4 ugers periode. Det kan nok ikke laves på mange andre måder :)

fennec, kigger lige på din løsning.
Avatar billede rane Nybegynder
30. oktober 2006 - 14:35 #6
fennec, ok det virker ikke...den resetter i hvert fald ikke noget :/
Avatar billede fennec Nybegynder
30. oktober 2006 - 14:43 #7
Har du ændret navnet på dine formelementer, så de overholder reglerne??
De kan ikke hedde "24-11-2006#20#" da - og # er ulovlige. Også skal navne starte med et bogstav.

Den angivet kode virker virker fint hos mig (i IE), har ikke testet med FF, men der burde det også virke.
Avatar billede rane Nybegynder
30. oktober 2006 - 14:54 #8
Har copy/pasted dine 4 linjer direkte ind i en html-fil og den virker ikke.
Avatar billede fennec Nybegynder
30. oktober 2006 - 14:58 #9
Du har nok glemt <form>.
Her har du den kode jeg har testet med:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>

<form name="myForm" method="post" action="test.asp">
<input type="radio" name="a23_11_2006_19_" value="1" />
<input type="radio" name="a23_11_2006_19_" value="2"  />
<input type="radio" name="a23_11_2006_19_" value="3"  />
<input type="Button" value="reset" onClick="tmp=this.form.a23_11_2006_19_;tmp(0).checked=tmp(1).checked=tmp(2).checked=false;return false;">
<br>
<input type="radio" name="a23_11_2006_20_" value="1" />
<input type="radio" name="a23_11_2006_20_" value="2"  />
<input type="radio" name="a23_11_2006_20_" value="3"  />
<input type="Button" value="reset" onClick="tmp=this.form.a23_11_2006_20_;tmp(0).checked=tmp(1).checked=tmp(2).checked=false;return false;">
</form>

</body>
</html>
Avatar billede olebole Juniormester
30. oktober 2006 - 14:59 #10
Hvornår er '#' blevet ulovlig i en name-attribut?  :)

Derudover skal syntaksen nok være noget à la:
    onclick="tmp=this.form.a23_11_2006_19_;tmp[0].checked=tmp[1].checked=tmp[2].checked=false;return false"

- men på den anden side kunne det jo se ud, somom spørgeren skriver XHTML - og så er syntaksen jo en helt anden. Spørgsmålet er så, om resten er XHTML - og om dokumentet overhovedet bliver served som XHTML  =)
Avatar billede rane Nybegynder
30. oktober 2006 - 15:01 #11
fennec, ja ok så virkede det.  Men så skal jeg bare ha rettet resten af min ASP-kode, da den jo tager dato + id fra name-feltet.

ole, der bliver kodet efter XHTML 1.0 Transitional standarden :)
Avatar billede rane Nybegynder
30. oktober 2006 - 15:04 #12
problemet er bare...kan jeg ha en <form></form> indeni en anden <form> der submitter?
Avatar billede olebole Juniormester
30. oktober 2006 - 15:08 #13
Nej, du kan under ingen omstændigheder neste forms  :)

Okay, hvis du skriver til XHTML1.0-Trans, kan du skrive, hvad somhelst. Det parses alligevel bare som skidt HTML-suppe ... ikke som XHTML  :)
Avatar billede olebole Juniormester
30. oktober 2006 - 15:12 #14
- og nej, fennec's runde parenteser virker kun i IE - og det skyldes en browser-bug. Der skal bruges firkantede brackets  ;o)
Avatar billede rane Nybegynder
30. oktober 2006 - 15:17 #15
Øvs...så må den form-løsning nok droppes :/
Avatar billede olebole Juniormester
30. oktober 2006 - 15:19 #16
- hvorfor det?
Avatar billede fennec Nybegynder
30. oktober 2006 - 15:22 #17
olebole >>
Tak for [] problemet. Det er langtid siden jeg har brugt arrays i JS, så det blev bare fyret af med (), som jo uheldigvis virker i IE :o)

rane >>
Hvorfor skal du også have form nestet i form?? Jeg kan ikke se et eks på at det skulle være nødvendigt. Det kan i hvertfald sagtens laves uden.
Avatar billede rane Nybegynder
30. oktober 2006 - 15:27 #18
ah ja doh...det virker jo fint nok med den nuværende form. Og nu også i FF takket være Ole :)
Avatar billede fennec Nybegynder
30. oktober 2006 - 15:32 #19
Så må det være en deler med Olebole
.o) <-- One Eyed Jack
Avatar billede olebole Juniormester
30. oktober 2006 - 15:34 #20
fennec >> Jeg havde gættet, det var en gammel VBS-vane med de runde parenteser  ;o)

Name-attributten er defineret som ikke-case-sensitive CDATA. Det betyder, den gerne må indeholde '#' - og den må endda se sådan ud:
    name="rugbr&oslash;#&aring;lefedt og snaps"  ;o)
Avatar billede olebole Juniormester
30. oktober 2006 - 15:35 #21
- nej, mine rettelser var bare småtingsafdelingen ... fennec lavede arbejdet, så han bør have points  ;o)
Avatar billede rane Nybegynder
30. oktober 2006 - 15:41 #22
Takker begge to :)
Avatar billede olebole Juniormester
30. oktober 2006 - 15:43 #23
- velbekomme  ;o)
Avatar billede fennec Nybegynder
30. oktober 2006 - 15:54 #24
Så siger jeg da tak for point.
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