JQuery不会选择和改变复选框的状态
JQuery doesn't select and change the state of a checkbox
这是html:
<div class="btn btn-stock-report" id="superman">
Superman <input type="checkbox" name="superman" />
</div>
这是JQuery:
$('#superman').on('click', function () {
if ($(this).children('input:checkbox:first').is(':checked')) {
superman = true;
$(this).children('input:checkbox:first').removeAttr('checked');
}
else {
superman = false;
$(this).children('input:checkbox:first').attr('checked', 'checked');
}
console.log("superman: " + superman);
});
我想要实现的只是改变子复选框的状态并改变superman
变量的值,但由于某种原因,它总是在控制台日志中打印出superman: false
。即使当我手动检查复选框并单击div,即使复选框现在被选中,它报告superman: false
是什么原因导致的?
你可以只是改变<div>
为<label>
和摆脱所有的jQuery代码,它将只是工作
您应该使用.prop()
而不是attr,因为checked
是复选框的属性。您还可以将代码缩小到:
$('#superman').on('click', function () {
var chk = $(this).find('input:checkbox:first')
chk.prop("checked", !chk.prop("checked"));
});
演示工作$('#superman').on('click', function () {
superman = !$(this).children('input:checkbox:first').is(':checked');
$(this).children('input:checkbox:first').prop('checked',superman);
console.log("superman: " + superman);
});
相关文章:
- 基于复选框状态的条件数学
- 导航到另一个页面后,复选框状态会更改
- 如何根据各种复选框状态执行操作
- 检查复选框状态-Javascript
- JavaScript-使用sessionStorage保存文档之间共享的复选框状态
- React.js可以't更改复选框状态
- 如何检查更改事件的复选框状态
- 基于各种用户行为管理复选框状态
- 根据 ajax 响应中的值设置复选框状态
- 从 django 读取复选框状态
- 分析获取查询字符串并使用值更改复选框状态
- 是否可以在不导致单击事件的情况下更改复选框状态
- 如何在 javascript 的信息窗口中使用 cookie 保存复选框状态
- 复选框提醒脚本在动态加载测试时不记得复选框状态.php其中包含复选框
- 保持选中复选框状态,直到用户取消选中
- 复选框状态(如果未选中)
- 复选框状态和其他属性
- 根据 AngularJS 中的多个条件更改复选框状态
- 自动将复选框状态/值保存到数据库
- 在复选框状态ExtJS 4.1中手动检测与编程更改