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 に答える