如果标记了复选框(div id =“foldstate”),将显示其他字段(div class =“fold”)的简单表单。
单击复选框会按预期隐藏/显示其他字段。
勾选复选框,填写其他字段并使用php提交(预览)表单输入以进行某些服务器端验证,显示复选框已选中但折叠仍然显示<div class="fold" style="display: none;">
我的错误在哪里?
我的jQuery代码:
$(document).ready(function() {
if ($("#foldstate").not(":checked")) {
$(".fold").css("display","none");
}
$("#foldstate").click(function(){
if ($("#foldstate").is(":checked")) {
$(".fold").show("fast");
}
else {
$(".fold").hide("fast");
}
});
});
答案 0 :(得分:1)
当未选中复选框时,.not()函数将返回JQuery对象的集合或空集合。在这两种情况下,您的代码将评估为true,因此您始终可以获得display:none。
当您通过ID选择时,我建议您替换此块:
if ($("#foldstate").not(":checked")) {
$(".fold").css("display","none");
}
由此:
if (!$("#foldstate").attr("checked")) {
$(".fold").css("display","none");
}