Javascript 如果选中的选项不是';全部';

Javascript 如果选中的选项不是';全部';,javascript,jquery,checkbox,functional-programming,Javascript,Jquery,Checkbox,Functional Programming,我有多个从数据库填充的复选框,除了一个复选框是“全部”(用于在单击时选中/取消选中所有其他复选框) 选中所有选项后,如果未选中“all”以外的任何选项,则应取消选中“all”复选框 如果选中除“全部”之外的所有选项,则应选中“全部”。如何进行 我的代码: <script> $(document).ready(function () { ('#check').append('<input type="checkbox" id="checkAll" nam

我有多个从数据库填充的复选框,除了一个复选框是“全部”(用于在单击时选中/取消选中所有其他复选框)

  • 选中所有选项后,如果未选中“all”以外的任何选项,则应取消选中“all”复选框

  • 如果选中除“全部”之外的所有选项,则应选中“全部”。如何进行

  • 我的代码:

    <script>
        $(document).ready(function () {
            ('#check').append('<input type="checkbox"  id="checkAll" name="myCheckbox[]" value="All" > </input>' + "All" );
            //'datadb' is data from db in json array 
            //datadb={'apple','banana','orange'}
    
            $.each(datadb, function(i, fruit) {
                $('#check').append('<input type="checkbox" name="myCheckbox[]" class=".chk"  value="' + fruit + '" > </input>' + fruit );
                $('#check').append('<br/>');        
            }
        });
    </script>
    
    <script>            
        $(document).ready(function() {
            $("#checkAll").click(function () {
                $('input:checkbox').not(this).removeProp('checked');
            });
        });
    </script>
    
    
    $(文档).ready(函数(){
    (“#检查”)。追加(“+”全部”);
    //“datadb”是来自json数组中db的数据
    //datadb={'apple'、'banana'、'orange'}
    $.each(数据数据库、函数(i、水果){
    $('#check')。附加(''+水果);
    $(“#检查”).append(“
    ”); } }); $(文档).ready(函数(){ $(“#选中全部”)。单击(函数(){ $('input:checkbox')。不是(这个)。移除PROP('checkbox'); }); });
    
    
    如何填充函数以满足上述1和2

    <script>
        function testingclick(){
            var $check_values = $("input[type=checkbox][name='myCheckbox[]']:checked");
            var $check_len = $check_values.length;
            var $total_len = $("input[type=checkbox][name='myCheckbox[]']").length;
    
            window.var_multiple_checked = $check_values.map(function(){  return "'" + this.value + "'";   }).get(); 
            temp_checked= window.var_multiple_checked;
        }
    </script>
    
    
    函数测试单击(){
    var$check_values=$(“输入[type=checkbox][name='myCheckbox[]']:选中”);
    var$check\u len=$check\u values.length;
    var$total_len=$(“输入[type=checkbox][name='myCheckbox[]']”)长度;
    window.var_multiple_checked=$check_values.map(函数(){return“'”+this.value+“'”;}).get();
    temp_checked=window.var_多个_checked;
    }
    
    用于此代码

    $('input:checkbox').not(this).prop('checked', this.checked);
    
    尝试改用removeProp

    $('input:checkbox').not(this).removeProp('checked');
    
    对于复选框的事件,使用事件钩住所有

    $(document).ready(function() {
        $('input:checkbox').click(function () {
            if ($(this).attr('id') === 'checkAll' && $(this).is(':checked')) {
                $('input:checkbox').not($(this)).removeProp('checked');
            } else {
                $('#checkAll').removeProp('checked');
            }
        });
    });
    

    编辑过。有什么建议来完成这个功能吗?是的,没错,花了很多时间。谢谢@billyonecan。