在jQuery中组合复选框选择器以获得唯一的结果

Combining checkbox selectors for unique results in jQuery

本文关键字:唯一 结果 选择器 jQuery 组合 复选框      更新时间:2023-09-26

我有3个复选框,我希望这些复选框的所有组合显示不同的结果,但我不知道如何做到这一点。感觉有一种简单的方法可以做到这一点,我错过了。

这是我到目前为止的弗兰肯斯坦怪物代码,它没有做我想要的。目的是让下面的代码看到用户同时选中了"webcam"(#checkWebcam)和"chat"(#checkChat)框,并且根据选择组合显示了不同的下载链接…

jQuery('#checkWebcam, #checkChat').change(function() {
    var isChecked = jQuery('#checkWebcam, #checkChat').is(':checked');
    if(isChecked)
        jQuery('div.strip.download').html('<a href="<?php echo $nos; ?>" class="btn btn-lg btn-to gradient-to">Download</a>');
    else
        jQuery('div.strip.download').html('<a href="<?php echo $download; ?>" class="btn btn-lg btn-to gradient-to">Download</a>');
});

谁能帮我如何实际实现这一目标?

这将执行OR操作,

var isChecked = jQuery('#checkWebcam, #checkChat').is(':checked');

你需要在这里执行一个AND操作,所以使用

var isChecked = jQuery('#checkWebcam').is(':checked') && $('#checkChat').is(':checked');

你可以试试下面的代码:

if ( $("#checkWebcam:checked, #checkChat:checked").length == 2 ) {
    //your code
}

如果选择一个或两个,var isChecked = jQuery('#checkWebcam, #checkChat').is(':checked');将返回true

将代码修改为

jQuery('#checkWebcam, #checkChat').change(function() {
    var boxs = jQuery('#checkWebcam, #checkChat');
    var checked = boxs.filter(':checked'); //Filter checked checkboxes
    if(boxs.length == checked.length){ //if length are same
        alert('both are checked')
    }else{
        alert('both are not checked')
    }    
});