确定是否在页面加载时使用jquery选中复选框

时间:2011-03-14 21:07:31

标签: jquery css xhtml

我仍然是jQuery的新手,所以请原谅我,如果第一轮没有意义。

我有一组复选框(允许,不允许,可协商),如果您选中允许或可协商,它会通过onclick事件取消隐藏另一组复选框。

我遇到的问题是,当刷新页面时,如果选中允许或协商,我希望第二组复选框可见。我希望这可以在页面加载时完成,而不是通过任何点击或更改事件(如果可能)。

我已经尝试了其他问题的各种建议而没有运气。 例如:if ($("#id_pets_0").attr("checked")==true)

这可能吗?

如果有人对此有任何替代方案,我也可以为此而战。

更新 这就是我一直在尝试的。

$(function() {
   if ($("#id_pets_0").attr("checked")==true) {
        $("#dogs").show();
        $("#cats").show();
    }
    else {
        $("#dogs").hide();
        $("#cats").hide();
    }
});

更新 这段代码确实有效。所以我知道它至少会检查点击事件的复选框。

$(function() {
    $('input#id_pets_0').click(function() {
    if ($(this).attr("checked")) {
        $("#id_pets_1").attr("checked", false);
        $("#dogs").show("slow");
        $("#cats").show("slow");
        return;
    }
    if ($("#id_pets_2").attr("checked")) {
        $("#dogs").show("slow");
        $("#cats").show("slow");
    }
    else {
        $("#id_dogs_0").attr("checked", false);
        $("#id_dogs_2").attr("checked", false);
        $("#id_cats_0").attr("checked", false);
        $("#id_cats_2").attr("checked", false);
        $("#dogs").hide("slow");
        $("#cats").hide("slow");
    }
});
});

4 个答案:

答案 0 :(得分:5)

除非您将所有脚本放在HTML之后,否则需要连接ready() document事件。

此外,您需要使用:checked选择器来确定是否选中了复选框。

这应该有效:

$(document).ready(function () {
        if ($('#id_pets_0 :checked')) {
            alert('Hello');
        }
    });

详细了解:checked选择器:http://api.jquery.com/checked-selector/

答案 1 :(得分:1)

试试这个http://jsfiddle.net/guanome/WzuMa/,它会在检查复选框时以及不复选时识别。

此网站列出了检查复选框是否已选中的可能方法。 http://jquery-howto.blogspot.com/2008/12/how-to-check-if-checkbox-is-checked.html

答案 2 :(得分:0)

我知道你想要一个jQuery响应,但你只用javascript尝试过吗?这个陈述很简单,你使用jQuery实际上并没有太多收获。

if (document.getElementById("id_pets_0").checked) {
    $("#dogs").show();
    $("#cats").show();
}
else {
    $("#dogs").hide();
    $("#cats").hide();
}

你还完全确定复选框是id_pets_0而不是复选框周围的包装ID吗?

答案 3 :(得分:0)

感谢所有回答。我原本以为那些会奏效。

我最终做的是将显示/隐藏选项包装在Django模板if中并使用正在传递的上下文。由于我正在捕捉pets的选择,然后我可以使用if来显示或隐藏catsdogs选择部分。