javascript - 如何防止使用 jquery 取消选中所有复选框?

标签 javascript jquery html checkbox checked

我有自定义复选框:

<p>
    <input class="preventUncheck" id="toggle-on1" type="checkbox">
    <label for="toggle-on1">Selling</label>
</p>
<p>
    <input class="preventUncheck" id="toggle-on2" type="checkbox">           
    <label for="toggle-on2">Rent</label> 
</p>
$(function() {
    //prevent to uncheck all checkboxes
    $('.preventUncheck').on('change', function() {
        $('.preventUncheck').length == 0
        && !this.checked
        && $(this).prop('checked', true);
    });
});

我想防止取消选中所有复选框,这意味着应该始终选中一个复选框,如果用户尝试取消选中它,javascript 会阻止这样做。

我怎样才能完成这项工作?

最佳答案

您应该检查选中复选框的长度是否等于 0,然后防止取消选中它。

$('.preventUncheck').on('change', function(e) {
    if ($('.preventUncheck:checked').length == 0 && !this.checked)
    	this.checked = true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
  <input type="checkbox" class="preventUncheck" id="toggle-on1">
  <label for="toggle-on1">Selling</label>
</p>
<p>
  <input type="checkbox" class="preventUncheck" id="toggle-on2">
  <label for="toggle-on2">Rent</label> 
</p>

关于javascript - 如何防止使用 jquery 取消选中所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42000995/

相关文章:

javascript - 如何更改此滑动文本区域的位置?

javascript - Angular 属性指令 - 在当前指令下方添加 ng-repeat

javascript - 仅针对启用 JavaScript 的客户端显示(即反 NOSCRIPT)

javascript - 在 WordPress 主题中添加 Google 字体的函数出错

html - 居中 DIVS 和页脚问题

Jquery 动画 2 Pane Div

javascript - ( ) 内的声明函数

javascript - Rails - jQuery 和 javascript 之间的冲突

javascript - 在将多变量测试引入动态 Web 应用程序时如何降低风险?

php - 我怎样才能像 WordPress 帖子列表编辑链接那样实现悬停效果的 jQuery?