单击div以使用javascript切换其中的复选框

occ*_*iso 19 html javascript

这似乎是一个简单的问题,但我不使用很多的JavaScript.

我有一个div,其中有一个复选框,并希望整个div切换复选框.这是我到目前为止:

<div style="padding: 2em; border: 1px solid"
     onClick="if (document.getElementById('cb').checked) document.getElementById('cb').checked=false; else document.getElementById('cb').checked=true;">
  <input name="cb" id="cb" type="checkbox">
</div>
Run Code Online (Sandbox Code Playgroud)

唯一的问题是当您单击实际复选框时,它会切换两次,因此不会更改.

有任何想法吗?

And*_*ume 38

您可以通过使用label元素包装要单击的区域,以更强大和可访问的方式实现此功能.

例如:

<label for="cb">
    <div style="padding: 2em; border: 1px solid">
        <input name="cb" id="cb" type="checkbox">
    </div>
</label>
Run Code Online (Sandbox Code Playgroud)

我没有测试过上面的代码,但我相信所有浏览器都支持点击标签来检查输入框.

  • 我需要显示:块; 并用标签替换了div:<label for ="test"style ="padding:15px; border:1px solid; display:block; background-color:#e0e0ff;"> <img rel="nofollow noreferrer" src ="bla.gif"/ > <br /> <input type ="checkbox"id ="test"/>一个打勾的盒子!</标签> (2认同)

Ale*_*ett 6

onclick="if (event.target.tagName != 'INPUT') document.getElementById('cb').checked = !document.getElementById('cb').checked"
Run Code Online (Sandbox Code Playgroud)