Avatar billede sthen Nybegynder
22. oktober 2002 - 13:02 Der er 7 kommentarer og
1 løsning

disable radiobutton

Hej

Jeg har to sæt radiobuttons
<FORM NAME="test">
<INPUT TYPE="RADIO" NAME="1" VALUE="a">
<INPUT TYPE="RADIO" NAME="1" VALUE="b">
<INPUT TYPE="RADIO" NAME="1" VALUE="c">

<INPUT TYPE="RADIO" NAME="2" VALUE="a">
<INPUT TYPE="RADIO" NAME="2" VALUE="b">
<INPUT TYPE="RADIO" NAME="2" VALUE="c">

Hvordan disabler jeg 2a hvis 1a er valgt, 2b hvis 1b er valgt osv....

Det må da være noget for en JavaScript-haj
Avatar billede Slettet bruger
22. oktober 2002 - 17:41 #1
Først og fremmest må dine navne ikke starte med et nummer!
Her er så koden:

<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="this.form.r2[0].disabled = true;">
<INPUT TYPE="RADIO" NAME="r1" VALUE="b" onClick="this.form.r2[1].disabled = true;">
<INPUT TYPE="RADIO" NAME="r1" VALUE="c" onClick="this.form.r2[2].disabled = true;">

<INPUT TYPE="RADIO" NAME="r2" VALUE="a">
<INPUT TYPE="RADIO" NAME="r2" VALUE="b">
<INPUT TYPE="RADIO" NAME="r2" VALUE="c">

Hvis det også skal virke den anden vej rundt, kan du nok selv regne ud, hvad du skal skrive!
Avatar billede Slettet bruger
22. oktober 2002 - 17:44 #2
Nej, du skal nok gøre sådan her:

<script>
foer = null;

function dis(frm, nr) {
if (foer)
frm.r2[foer].disabled = false;
frm.r2[nr].disabled = true;
foer = nr;
}
</script>

Og:

<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="dis(0);">
<INPUT TYPE="RADIO" NAME="r1" VALUE="b" onClick="dis(1);">
<INPUT TYPE="RADIO" NAME="r1" VALUE="c" onClick="dis(2);">

Her bliver det lidt mere besværligt, hvis det skal virke vice versa.
Avatar billede Slettet bruger
22. oktober 2002 - 17:45 #3
Ups:

<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="dis(this.form, 0);">

osv.
Avatar billede sthen Nybegynder
22. oktober 2002 - 17:55 #4
Kigger på det senere.
Avatar billede sthen Nybegynder
22. oktober 2002 - 23:04 #5
Kunne først ikke lige få skidtet til at virke, men da jeg tilføjede et par plinger, så virkede skidtet, så naturligvis skal du ha' points.

For god ordens skyld (og for databasens) kom funktionen til at se således ud:

<head>

<script>
foer = null;
function dis(frm, nr) {
if (foer)
frm.r2[foer].disabled = false;
frm.r2[nr].disabled = true;
foer = nr;
}
</script>

</head>
<body>

<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="dis(this.form, '0');">
<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="dis(this.form, '1');">
<INPUT TYPE="RADIO" NAME="r1" VALUE="a" onClick="dis(this.form, '2');">

</body>

Undskyld at det tog lidt tid, men jeg ligger med influenza, og trængte lige til en lille lur.
Avatar billede Slettet bruger
23. oktober 2002 - 17:04 #6
Nej, det er helt forkert! Du må endelig ikke forveksle integers med strings!

Måske var fejlen, at denne linje:

if (foer)

... skal se sådan her ud:

if (foer != null)
Avatar billede sthen Nybegynder
23. oktober 2002 - 23:51 #7
You're right

Men som sagt er jeg ikke selv meget bevendt når det handler om JavaScript. Jeg har en klar fornemmelse af HVAD man kan lave, men ikke HVORDAN.

Hygger mig stadig med php, som jo er noget meget andet, men også tidskrævende at finde ud af, hvis man skal HELT ud i alle hjørner.
Avatar billede Slettet bruger
24. oktober 2002 - 17:57 #8
Alligevel er PHP dog det programmeringssprog som rent grundlæggende minder mest om JavaScript (efter min mening). Men når vi skal ud i objekter osv. så har de to sprog ikke meget tilfælles.
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