2012-04-13 23 views
0

Ich beginne gerade mit Javascript, also bitte verzeihen Sie mir, wenn meine Frage dumm scheint. Ich möchte eine Webseite mit einigen Checkboxen so gestalten, dass wenn die erste Option aktiviert ist, die anderen aktiviert werden. Wie mache ich das mit JS? Ich schrieb den folgenden Code:Aktivieren Sie Kontrollkästchen mit Javascript

function checkBox() { 
    if (window.document.form1.mainbox.checked=true) { 
     for (i=0;i<window.document.form1.Others.length;i++) { 
      window.document.form1.Others[i].disabled=false; 
     } 
    } 
    else { 
     for (i=0;i<window.document.form1.Others.length;i++) { 
      window.document.form1.Others[i].disabled=true; 
     } 
    } 
} 

Und diese HTML:

<form name="form1"> 
<input name="mainbox" value="mainbox" onclick="checkBox()" type="checkbox"> Mainbox<br> 
<input disabled="disabled" checked="checked" tabindex="0" name="Others" type="checkbox">No. 1<br> 
<input disabled="disabled" checked="checked" tabindex="1" name="Others" type="checkbox"> No. 2<br> 
<input disabled="disabled" checked="checked" tabindex="2" name="Others" type="checkbox"> No. 3<br> 
</form> 

Das Problem besteht darin, dass auf dem ersten klicken, um die anderen Kontrollkästchen aktiviert würden, aber es passiert nichts auf den nachfolgenden Klicks, das heißt, sie tun nicht wieder deaktiviert werden. Wie behebe ich dieses Problem? Jede Hilfe wird geschätzt. Vielen Dank!

EDIT

folgte ich den Vorschlag von gabitzish und es funktionierte. Allerdings möchte ich jetzt andere als Parameter zu übergeben, so dass ich schreiben:

<input name="mainbox" value="mainbox" onclick="checkBox(Others)" type="checkbox"> Mainbox<br> 

und das Skript wie folgt ändern:

window.checkBox = function(chkname) { 
    if (window.document.form1.mainbox.checked==true) { 
     for (i=0;i<window.document.form1.chkname.length;i++) { 
      window.document.form1.chkname[i].disabled=false; 
     } 
    } 
    else { 
     for (i=0;i<window.document.form1.chkname.length;i++) { 
      window.document.form1.chkname[i].disabled=true; 
     } 
    } 
} 

Aber das funktioniert nicht. Bitte helfen Sie mir hier draußen. Ich werde sehr dankbar sein.

Antwort

1

ich einen jsFiddle mit Ihrem Code erstellt haben, und einige kleinere Änderungen: http://jsfiddle.net/CUeDg/1/

Das Problem mit dem ursprünglichen Code war, dass die Funktion checkBox() beim Klicken nicht gefunden wurde.

Edit: Hier ist eine Lösung, die später bearbeiten Ihre Frage: http://jsfiddle.net/CUeDg/3/ ich die param auf die Funktion als String übergeben habe.

Spätere Bearbeitung: Ich vermute, dass Sie diesen Parameter benötigen, um zu wissen, welche Checkboxen Sie schalten müssen. Ich habe auch eine jsFiddle dafür gemacht: http://jsfiddle.net/CUeDg/5/ (Wenn ich falsch vermutet, nicht in diesem Teil der Antwort)

+0

Vielen Dank! Das hat genau das gemacht, was ich wollte! – user828647

+0

Ich habe meine Antwort bearbeitet und jetzt wird ein Parameter an Ihre Funktion übergeben – gabitzish

+0

Sie vermuteten richtig, und Ihre Lösung funktioniert! Danke nochmal, und ich habe deine Antwort wie versprochen angenommen :) – user828647

2

diese Leitung fehlerhaft ist (Ihr fehlt a =)

if (window.document.form1.mainbox.checked=true) 

versuchen, es zu

Ändern
if (window.document.form1.mainbox.checked) 
Verwandte Themen