【发布时间】:2016-01-24 08:49:41
【问题描述】:
我正在尝试使用 jQuery 显示/隐藏来根据是否选中复选框来控制 div 的显示。 (我也尝试过使用 display none/block 的 CSS 方法。)
我可以让代码通过检查复选框然后让 div 显示或隐藏来工作,但是,如果选中特定的复选框,我无法让我的“检查所有”按钮也起作用,以显示/相应地隐藏 div。
我在这里把它放到一个 JSFiddle 中:https://jsfiddle.net/gamehendgeVA/2jszhdzw/
有人可以帮我让选中的单个复选框显示/隐藏与“全选”按钮一起显示和隐藏基于被选中的特定复选框的 div 吗?
感谢您的帮助!
HTML
<div class="panel panel-info">
<div class="panel-heading"><h3 class="panel-title">Search These Domains</h3></div>
<div class="panel-body">
<input type="button" class="btn btn-primary btn-xs" data-toggle="button" value="all domains" id="checkAllDomains" />
<br />
<div class="col-md-6">
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox" id="domainCheckbox1">One</label></div>
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox">Two</label></div>
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox">Three</label></div>
</div>
<div class="col-md-6">
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox">Four</label></div>
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox">Five</label></div>
<div class="checkbox"><label><input type="checkbox" class="searchDomainCheckbox">Six</label></div>
</div>
</div> <!-- /.panel-body -->
</div> <!-- /.panel -->
<div class="panel panel-info" id="div1">
<div class="panel-heading"><h3 class="panel-title">Search These Divisions</h3></div>
<div class="panel-body">
THIS DIV SHOULD ONLY APPEAR WHEN "#domainCheckbox1" is checked, either when checked on its own, or checked when the "all domains" button checks it.
</div> <!-- /.panel-body -->
</div> <!-- /.panel -->
JS
$('#div1').hide();
$('#domainCheckbox1').change(function(){
if($(this).prop("checked")) {
$('#div1').show();
} else {
$('#div1').hide();
}
});
/////////
$(function() {
function updateCheckAllButtonDomains() {
if ($('.searchDomainCheckbox:checked').length == $('.searchDomainCheckbox').length) {
$('#checkAllDomains').val('uncheck all').data('check', false);
} else {
$('#checkAllDomains').val('all domains').data('check', true);
}
}
$('.searchDomainCheckbox').change(function() {
updateCheckAllButtonDomains();
});
$('#checkAllDomains').click(function() {
$('.searchDomainCheckbox').prop('checked', $(this).data('check'));
updateCheckAllButtonDomains();
});
updateCheckAllButtonDomains();
});
【问题讨论】:
标签: jquery twitter-bootstrap-3 show show-hide