如何在选中复选框时切换文本,并在未选中任何内容时隐藏

问题描述 投票:2回答:2

选中复选框时,会显示文本Checked。取消选中所有复选框时,如何隐藏文本Checked

$('.rafcheckbox').click(function() {
  $(".rafoptions").show();
});
<input type="checkbox" class="rafcheckbox" value="1" />
<input type="checkbox" class="rafcheckbox" value="2" />
<input type="checkbox" class="rafcheckbox" value="3" />
<div class="rafoptions" style="display:none">Checked</div>
javascript jquery hide show
2个回答
3
投票

为了完成这项工作,您可以使用:checked选择器和length属性来确定是否检查了任何框。然后你可以使用toggle()来隐藏/显示div

var $checkboxes = $('.rafcheckbox').change(function() {
  var anyChecked = $checkboxes.filter(':checked').length != 0;
  $(".rafoptions").toggle(anyChecked);
});
.rafoptions { display: none; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="rafcheckbox" value="1" />
<input type="checkbox" class="rafcheckbox" value="2" />
<input type="checkbox" class="rafcheckbox" value="3" />
<div class="rafoptions">Checked</div>

0
投票

您可以使用ES6中引入的every()来实现这一目标

$(".rafcheckbox").click(function() {
    let checkedInputs = [];
    $(".rafcheckbox").each(function() {
    checkedInputs.push(this.checked)});
    if(checkedInputs.every(element => !element))
        $(".rafoptions").hide();
    else
        $(".rafoptions").show();
});

JSFiddle

© www.soinside.com 2019 - 2024. All rights reserved.