jQuery显示/隐藏div和表单提交

时间:2012-12-10 16:46:31

标签: php jquery

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

1 个答案:

答案 0 :(得分:1)

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

当您通过ID选择时,我建议您替换此块:

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

由此:

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