-4

我有一个由许多 div 构建的网站。几乎所有的 div 都有相同的类(对于 CSS)和不同的 id。这是代码的一部分:

<div class="box" id="testbox">
<img src=""><br>
Name<br><input name="choice" value="1" id="name" type="checkbox" onchange="onCheckboxChanged(); checkTotal();">
</div>

当我单击此 div 中的任何位置时,我想选中/取消选中它的复选框(隐藏,因此无法单击),这将切换 onCheckboxChanged() (解锁更多复选框)和 checkTotal() (从选中的复选框中添加值) . 正因为如此。单击的 div 必须首先检查是否启用了复选框,然后选中/取消选中它。我也希望它只改变这个 div 的背景。我更喜欢只使用 html/css/js 的解决方案。

4

3 回答 3

3

你需要的是label元素。使用它而不是你的 div ,它基本上可以满足你的需要。您可以使用disabled复选框上的属性来启用/禁用它们。

于 2013-09-18T12:23:43.723 回答
-1
$('.box').click(function(){

   if($(this).find('input[type=checkbox]').is(':checked'))
        {
            $(this).find('input[type=checkbox]').removeAttr('checked');
            /// do other stuffs
        }
   else
        { 
            $(this).find('input[type=checkbox]').attr('checked','checked');
            /// do other stuffs
        }
});
于 2013-09-18T13:01:35.973 回答
-1
document.getElementById("testbox").onclick = function(e){
    var nameCheck = document.getElementById("name");
    nameCheck.checked = !nameCheck.checked;
    nameCheck.onchange();
}

jsfiddle - 你可以做这样的事情,虽然我认为使用隐藏的复选框而不是 div 上的属性可能是多余的。

于 2013-09-18T12:55:09.343 回答