【发布时间】:2015-12-02 00:53:17
【问题描述】:
如果选中,单击复选框应该检查警报,如果没有检查,则不检查警报。代码如下:
<input type = "checkbox" id = "all" value="all" /> MyCheckbox
<script src="jquery-2.1.4.js"></script>
<script type="text/javascript">
$("input[type=checkbox]").click(function(){
if ($(this).attr("checked")) {
alert("checked");
}
else{
alert("not checked");
}
});
</script>
最初复选框未选中。一旦我单击它,调试器就会显示它检查值 true。现在控件应该进入 if{} 块,因为它的值为 true,但它进入 else{} 块。 (我正在使用断点)。
为什么会这样。请帮助我尝试几个小时。
【问题讨论】:
-
您也可以使用
.prop()。关于attr()和prop()之间区别的一个很好的答案可以找到here -
怎么样?您可以使用
.prop("checked", true)来检查复选框是否被选中。 编辑:好的,上面的评论被删除了。这条评论针对的是上一条…… -
api.jquery.com/prop 页面上甚至还有例子显示了使用 attr() 和 prop() 之间的区别。
标签: javascript jquery html debugging checkbox