jQuery Show-Hide DIV基于Checkbox Value

时间:2010-12-14 21:12:38

标签: jquery checkbox show-hide

使用AJAX我用一堆复选框(每个复选框都有自己唯一的ID)填充DIV。 ID是“projectID1”,“projectID2”,“projectID3”等......我给所有复选框都提供了一个“pChk”类。

我的最终目标是在选中任何复选框时显示包含提交按钮的DIV。唯一一次隐藏包含提交按钮显示的DIV的是,如果未选中所有复选框。

但是,我在下面提出的代码显示/隐藏了每个复选框实例的提交按钮DIV。换句话说,如果我有三个复选框CHECKED并且我取消其中一个复选框,则提交按钮DIV将被隐藏。

非常欢迎您的专家建议!

function checkUncheck() { 
    $('.pChk').click(function() {
        if (this.checked) {
            $("#ProjectListButton").show();
        } else {
            $("#ProjectListButton").hide();
        }
    }); 
}

8 个答案:

答案 0 :(得分:55)

如果有人再次遇到此问题(通过搜索),这已经过时了。 jQuery 1.7以后的正确答案现在是:

$('.pChk').click(function() {
    if( $(this).is(':checked')) {
        $("#ProjectListButton").show();
    } else {
        $("#ProjectListButton").hide();
    }
}); 

答案 1 :(得分:15)

我使用jQuery prop

$('#yourCheckbox').change(function(){
  if($(this).prop("checked")) {
    $('#showDiv').show();
  } else {
    $('#hideDiv').hide();
  }
});

答案 2 :(得分:11)

这是因为您只检查当前的复选框。

将其更改为

function checkUncheck() { 
    $('.pChk').click(function() {
        if ( $('.pChk:checked').length > 0) {
            $("#ProjectListButton").show();
        } else {
            $("#ProjectListButton").hide();
        }
    }); 
}

检查是否选中了任何复选框(此行中的大量检查.. )。

参考:http://api.jquery.com/checked-selector/

答案 3 :(得分:5)

ebdiv设置为style="display:none;"

是作品秀&隐藏

$(document).ready(function(){
    $("#eb").click(function(){
        $("#ebdiv").toggle();
    });

});

答案 4 :(得分:2)

您可以考虑使用jQuery提供的:checked selector。像这样:

$('.pChk').click(function() {
    if( $('.pChk:checked').length > 0 ) {
        $("#ProjectListButton").show();
    } else {
        $("#ProjectListButton").hide();
    }
}); 

答案 5 :(得分:2)

给所有使用平面红色,平绿色插件的人提示,因为这个插件上面的答案不会起作用!

在这种情况下,使用onchange =" do_your_stuff();"在标签上,例如:  你的复选框

它不起作用的原因是这个Jquery在真实复选框周围创建了很多对象,因此你无法看到它是否发生了变化。

但如果有人直接点击复选框,就不会工作:'(

答案 6 :(得分:0)

试试这个

$('.yourchkboxes').change(function(){
    $('.yourbutton').toggle($('.yourchkboxes:checked').length > 0);
});

因此,它将检查是否选中了至少一个复选框。

答案 7 :(得分:0)

`显示

$('#cbxShowHide').click(function(){ this.checked?$('#block').show(1000):$('#block').hide(1000); //展示时间 });`