2012-04-13 4 views
0

Я только начинаю с javascript, поэтому, пожалуйста, простите меня, если мой вопрос кажется глупым. Я хочу создать веб-страницу с некоторыми флажками, чтобы при первом проверке другие включались. Как мне это сделать с помощью JS? Я написал следующий код:Включить флажки с помощью 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; 
     } 
    } 
} 

И этот 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> 

Проблема заключается в том, что на первом щелкните остальные флажки действительно становится доступным, но ничего не происходит на последующих кликов, то есть они не снова отключиться. Как исправить эту проблему? Любая помощь будет оценена. Благодаря!

EDIT

Я последовал совету gabitzish, и она работала. Тем не менее, сейчас я хочу передать Другие в качестве параметра, поэтому я пишу:

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

и изменить сценарий следующим образом:

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; 
     } 
    } 
} 

Но это не работает. Пожалуйста, помогите мне здесь. Я буду очень благодарен.

ответ

1

Я создал jsFiddle с вашим кодом, и некоторые незначительные изменения: http://jsfiddle.net/CUeDg/1/

Проблема с исходным кодом заключалась в том, что функция checkBox() не была найдена при щелчке.

Edit: Вот решение для последующего редактирования вашего вопроса: http://jsfiddle.net/CUeDg/3/ Я прошел из параметров функции в виде строки.

Позже отредактируйте: Я подозреваю, что вам нужен этот параметр, чтобы узнать, какой набор флажков вам нужно переключить. Я тоже сделал jsFiddle: http://jsfiddle.net/CUeDg/5/ (Если я подозревал, что не ошибаюсь, не учитывайте эту часть ответа)

+0

Спасибо! Это сделало то, что я хотел! – user828647

+0

Я отредактировал свой ответ, и теперь параметр передается вашей функции – gabitzish

+0

Вы подозреваете, что правильно, и ваше решение работает! Еще раз спасибо, и я принял ваш ответ как обещал :) – user828647

2

эта линия виновата (ваш отсутствующий а =)

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

попробуйте изменить его

if (window.document.form1.mainbox.checked) 
Смежные вопросы