0

如果复选框 (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");
        }
    });
});
4

1 回答 1

1

当您的复选框未选中时,.not() 函数将返回 JQuery 对象的集合或空集合。在这两种情况下,您的代码都将评估为 true,因此您始终会得到 display:none。

由于您按 ID 销售,我建议您替换此块:

if ($("#foldstate").not(":checked")) {
    $(".fold").css("display","none");
}

这样:

if (!$("#foldstate").attr("checked")) {
    $(".fold").css("display","none");
}
于 2012-12-10T17:18:36.450 回答