knockout.js 多个复选框状态为选中

klsxnrf1  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(175)

我正在使用knockout Js。有两个复选框。如果任何复选框没有选中,那么提交按钮将被禁用。有可能的情况下,将有1个复选框,而不是2个复选框。所以我有这样的条件

if ((self.checkBox1() === true && self.checkBox2() === true) || ($("#checkbox2").length <= 0 && self.checkBox1() === true) || ($("#checkbox1").length <= 0 && self.checkBox2() === true)) {
        $('.submit-btn').attr('disabled', false);

    } else {
        $('.submit-btn').attr('disabled', true);

    }
    return true;
}

这是我创建的一个Jsfiddle示例。
有没有更好的方法?

4si2a6ki

4si2a6ki1#

像这样的事情会是一个好的开始。
第一个

e0bqpujr

e0bqpujr2#

$('.submit-btn').attr('disabled', ![...document.querySelectorAll('[type="checkbox"]')].every(cb=cb.checked)));

在本例中,我们检查页面上的所有复选框是否都被选中,这是一个返回true/false的过程,并使用该值直接更改按钮的禁用状态。
如果在同一页上也存在NON-required复选框的可能性,则对querySelectorAll('[type="checkbox"]')部分进行较小的修改就可以处理它:给予所需的CB提供class="required"querySelectorAll('.required[type="checkbox"]'),或者将其父容器(querySelectorAll('#parent [type="checkbox"]')作为目标

相关问题