2010-12-02 16 views
3

2つのチェックボックスがあり、chk1とchk2を考えてください。 1つのチェックボックスがチェックされている場合、2番目のチェックボックスは自動的にチェックされ、それ以外のチェックボックスはチェックされません。何がjavascriptにする必要がありますか?誰か助けてくれますか?ありがとうございました!!他のチェックボックスがチェックされている場合、チェックボックスをオンにするJavascript

+0

あなたは "その逆はない" とはどういう意味ですか? – jordanbtucker

+1

私は彼がck2をチェックすることはchk1をトグルしないことを意味すると思う。 – JohnFx

+0

@ジョン。それが私の考えですが、彼は 'chk2'が自動的にチェックされ、決して自動的にチェックされないことを望んでいるだけかもしれません。 – jordanbtucker

答えて

5

一般的なアイデアを示すための簡単なインラインバージョンです。実際の使用法では別の関数に取り込むことができます。

chk2がchk1の変更と自動的に同期するようにしたいが、chk2をクリックしたときに何もしないようにするには、これを実行します。

<input id="chk1" type="checkbox" onclick="document.getElementById('chk2').checked = this.checked;"> 
<input id="chk2" type="checkbox"> 

このバージョンでは唯一のCHK1がチェックされたときにCHK2を変更するが、CK1がチェックされたときに何もしません。最初のもののために

<input id="chk1" type="checkbox" onclick="if (this.checked) document.getElementById('chk2').checked = true;"> 
<input id="chk2" type="checkbox"> 
+0

onclickが重要なので、良い答えです( 'onchange'はフォーカスが取り除かれるまでトリガされません - ユーザがスペースバーを使用する場合に両方を置くのが良いかもしれないと思ったのですか?それとも' onclick'を引き起こしますか?) – Nicole

+2

私はしましたクイックテストとスペースバーは、FirefoxとIEでそれを引き起こしました。 – JohnFx

+0

ありがとうジョン!! :) – Ram

2
var chk1 = document.getElementById('chk1'); 
var chk2 = document.getElementById('chk2'); 

if (chk1.checked) 
     chk2.checked = true; 
+0

この解決策は、ck1のチェックを外したときにck2がUNCHECKしないようにしたい場合に有効です。あなたがck1のチェックを外したときにOPが(もしあれば)何を起こそうとしているのかは少し不明です。 – JohnFx

1

document.getElementById('chk1').checked = document.getElementById('chk2').checked; 

秒1の場合:

document.getElementById('chk2').checked = document.getElementById('chk1').checked;