使用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();
}
});
}
答案 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();
}
});
}
检查是否选中了任何复选框(此行中的大量检查.. )。
答案 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); //展示时间 });`