jQuery Show-Hide DIV基于Checkbox Value

mic*_*ick 24 checkbox jquery show-hide

使用AJAX我用一堆复选框填充DIV(每个复选框都有自己唯一的ID).该ID是"projectID1","projectID2","projectID3"等等......我已经给所有的复选框一类"pChk"的.

我的最终目标是在选中任何复选框时显示包含提交按钮的DIV.包含提交按钮的DIV显示的唯一时间是未选中所有复选框.

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

非常欢迎您的专业建议!

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

小智 57

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

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

  • 我真的不知道为什么会这么up ..这是错的.你只是在检查当前项目,而OP特别要求只有在***all***`.pChk`元素未被选中时才会发生隐藏..你刚刚重写了问题的代码(*是更好,因为直接使用`this.checked`而不是你使用jquery甚至为此..*) (5认同)

Cyb*_*e シ 15

我使用jQuery prop

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


Gab*_*oli 11

那是因为您只检查当前复选框.

将其更改为

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

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

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


Vai*_*shu 5

ebdiv已经确定 style="display:none;"

它是作品展示和隐藏

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

});
Run Code Online (Sandbox Code Playgroud)