Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Hvorfor fungere denne form kontrol ikke

1 view
Skip to first unread message

Anders And

unread,
Mar 7, 2012, 4:19:49 AM3/7/12
to
Jeg har denne kode:

function checkEnableDisable (myForm) {
if(document.myForm.mycheckbox.checked) {
document.myForm.myinput.disabled=true;
} else {
document.myForm.myinput.disabled=false;
}
}
...
<form name="test123">
<input type=text name=myinput>
<input type=checkbox name=mycheckbox
onclick='javascript:checkEnableDisable(this.form);'>
</form>

Men hvorfor fungere det ikke? Bemærk at jeg har mange forms, men med
unikke navne.

Birger Sørensen

unread,
Mar 7, 2012, 5:30:33 AM3/7/12
to
Anders And udtrykte præcist:
Rap, rap...
Parametre skal i anførselstegn - enten enkelt eller dobbelt.
det er skidt at bruge this - fordi this ikke altid er det samme i
forskellige browsere.
Og det er meget enklere at bruge id'er end at antage at brwseren selv
kan finde ud af, hvilket element du hentyder til.
Mener heller ikke at name er gyldigt for en form - det er det kun
elementer, der indeholdes i en form (input, textarea checkbox, radio
etc.). Der skal anvendes id i stedet.

<input type="checkbox" id="mycheckbox" name="mycheckbox"
onclick="javascript:checkEnableDisable('mycheckbox');">

function checkEnableDisable(id) {
var elm = document.getElementById(id);
if (elm) {
if(elm.checked) {
elm.disabled=true;
}
else {
elm.disabled=false;
}
}
}

Så er der disabled - i nogle browsere, skal det hedde
disabled = 'disabled'; (true) og
disabeld = ''; (false)
i andre kan bruges boolean direkte som du gør.
Ikke sikker på, om funktionen ikke skal returnere false, for at
undertrykke browserens default action.

Og i øvrigt er det lidt svært at se anvendelsen - hvis brugeren ved en
fejltagelse checker en box, kan hyn ikke unchecke den igen...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://skippersevent.dk


Anders And

unread,
Mar 7, 2012, 7:33:35 AM3/7/12
to
> Der skal anvendes id i stedet.

Tak, det løste mit problem, efter noget omskrivning af min kode.

Du havde overset, at jeg havde et input felt og at det var den der
skulle disables - ikke checkboksen ;-)

Birger Sørensen

unread,
Mar 7, 2012, 10:21:19 AM3/7/12
to
Anders And kom med følgende:

> Du havde overset, at jeg havde et input felt og at det var den der
> skulle disables - ikke checkboksen ;-)

OK :/
Så giver det lidt mere mening...
0 new messages