我有一个复选框,当我点击一个复选框(ckbox3)时,会显示3个带复选框的选项(check1,check2,check3)。当我取消选中ckbox3时,我想要check1,check2和check3取消选中。我不知道该怎么做
有人可以帮我解决Javascript代码..(我需要使用Javascript解决方案)
HTML :
<div id="divv1">
<input type="checkbox" id="ckbox3" >Checkbox1
</div>
<br>
<div id="divv2">
<input type="checkbox" name="check1" onclick="calculate()" id="check1">check 1
<input type="checkbox" name="check2" onclick="calculate()" id="check2">check 2
<input type="checkbox" name="check3" onclick="calculate()" id="check3">check 3
</div>
JavaScript :
document.getElementById('ckbox3').onclick = function() {
if(ckbox3.checked){
toggleSub(this, 'divv2');
} else {
toggleSub(this, 'divv2');
}
};
function toggleSub(box,id)
{
var el = document.getElementById(id);
if ( box.checked ) {
el.style.display = 'block';
} else {
el.style.display = 'none';
}
}
CSS :
#divv2
{
display: none;
margin-left: 75px;
font-family: 'PT Sans', sans-serif;
}
答案 0 :(得分:1)
在ckbox3上添加onchange功能:
<input type="checkbox" id="ckbox3" onchange = "change()" >
并且在功能中:
function change()
{
if(document.getElementById("ckbox3").checked == false){
document.getElementById("check1").checked = false;
document.getElementById("check2").checked = false;
document.getElementById("check3").checked = false;
}
}
答案 1 :(得分:1)
以下是generic
代码,您可以在div
中提供任意数量的复选框。
document.getElementById('ckbox3').onclick = function() {
if(ckbox3.checked)
{
toggleSub(this,true);
}
else
{
toggleSub(this, false);
}
};
function toggleSub(box,status)
{
var div = document.getElementById("divv2");
var el = div.getElementsByTagName("input");
var len = el.length;
while(len--)
{
div.getElementsByTagName("input")[len].checked = status;
}
}
<div id="divv1">
<input type="checkbox" id="ckbox3" >Checkbox1
</div>
<br>
<div id="divv2">
<input type="checkbox" name="check1" onclick="calculate()" id="check1">check 1
<input type="checkbox" name="check2" onclick="calculate()" id="check2">check 2
<input type="checkbox" name="check3" onclick="calculate()" id="check3">check 3
</div>
答案 2 :(得分:0)
我就是这样做的:
var arr = document.querySelectorAll("[id*='check']");
for(var i=0; i< arr.length; i++){
arr[i].checked=false;
}
在代码的else
部分添加上述代码,以便在取消选中ckbox3
时取消选中其余代码,如JSFiddle演示中所示。
答案 3 :(得分:0)
您可以使用以下代码
$("#ckbox3").change(function () {
$("input:checkbox").prop('checked', $(this).prop("checked"));
});
答案 4 :(得分:0)
请查看以下代码:
<script>
function handleClick(element){
if (element.checked == true){
document.getElementById("check1").checked = true;
document.getElementById("check2").checked = true;
document.getElementById("check3").checked = true;
}else{
document.getElementById("check1").checked = false;
document.getElementById("check2").checked = false;
document.getElementById("check3").checked = false;
}
}
</script>
<div id="divv1">
<input type="checkbox" id="masterCheckbox" onclick='handleClick(this);'> Checkbox1
</div>
<br>
<div id="divv2">
<input type="checkbox" name="check1" onclick="calculate()" id="check1">check 1
<input type="checkbox" name="check2" onclick="calculate()" id="check2">check 2
<input type="checkbox" name="check3" onclick="calculate()" id="check3">check 3
</div>
&#13;
答案 5 :(得分:0)
在你的其他部分尝试这个:
else
{
el.style.display = 'none';
var checks = document.querySelectorAll('#' + id + ' input[type="checkbox"]');
for(var i =0; i< checks.length;i++){
var check = checks[i];
if(!check.disabled){
check.checked = false;
}
}
}