即使列表中的一个未被选中,如何取消选中一个复选框呢? [英] How to uncheck a checkbox even if one among the list is unchecked?

查看:84
本文介绍了即使列表中的一个未被选中,如何取消选中一个复选框呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试选中一个复选框(它会检查列表中的所有其他复选框,并且即使未选中列表中的一个复选框也要取消选中.现在,仅第一个我的意思是一个复选框正在检查列表中所有其余复选框,但是反之亦然,我的意思是即使未选中的列表中的一个不起作用也要取消选中.如何实现?

I am trying a check a checkbox (which checks all other checkboxes in the list and unchecks even if one among the list is unchecked. Now only the first I mean one checkbox checking all the remaining checkboxes in the list is happening but the vice versa I mean unchecking even if one among the list in unchecked is not working. How can i achieve that?

<label><input type="checkbox" name="sample" class="selectall"/> Select all</label>

<div id="checkboxlist">
<label><input type="checkbox" name="sample"/>checkbox1</label><br/>
<label><input type="checkbox" name="sample"/>checkbox2</label><br />
<label><input type="checkbox" name="sample"/>checkbox3</label><br />
<label><input type="checkbox" name="sample"/>checkbox4</label><br />

 </div> 

小提琴.

推荐答案

我会这样做:

$('.selectall').on('change', function(e) {
    var $inputs = $('#checkboxlist input[type=checkbox]');
    if(e.originalEvent === undefined) {
        var allChecked = true;
        $inputs.each(function(){
            allChecked = allChecked && this.checked;
        });
        this.checked = allChecked;
    } else {
        $inputs.prop('checked', this.checked);
    }
});

$('#checkboxlist input[type=checkbox]').on('change', function(){
    $('.selectall').trigger('change');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="checkbox" name="sample" class="selectall"/> Select all</label>

<div id="checkboxlist">
    <label><input type="checkbox" name="sample"/>checkbox1</label><br/>
    <label><input type="checkbox" name="sample"/>checkbox2</label><br />
    <label><input type="checkbox" name="sample"/>checkbox3</label><br />
    <label><input type="checkbox" name="sample"/>checkbox4</label><br />
    
</div>

A将e.isTrigger替换为e.originalEvent === undefined. Wolff的建议为

swapped e.isTrigger for e.originalEvent === undefined per A. Wolff's suggestion as commented below.

这篇关于即使列表中的一个未被选中,如何取消选中一个复选框呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆