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

时间:2014-06-30 12:17:49

标签: javascript jquery checkbox

我有3个复选框,我希望这些复选框的所有组合显示不同的结果,但我无法弄清楚如何执行此操作。感觉就像有一种简单的方法可以解决这个问题。

这是我迄今为止所拥有的弗兰肯斯坦怪物代码,它不会做我喜欢的事情。目的是以下代码看到用户已检查过"网络摄像头" (#checkWebcam)和"聊天" (#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>');
});

有人能帮助我实现这个目标吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

这将执行OR操作,

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

你基本上需要的是在这里执行AND操作,所以使用

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

答案 1 :(得分:1)

您可以尝试以下代码:

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

答案 2 :(得分:0)

如果选择其中一个或两个,

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')
    }    
});

DEMO