我仍然是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");
}
});
});
答案 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
来显示或隐藏cats
和dogs
选择部分。