Javascript prop(';checked';)不更改HTML中的实际checked属性
好的,这很可能是一个相当愚蠢的问题,但我很难把我的头围绕在这个问题上 在页面加载/生成时,我将根据实际的数据库条目,通过PHP将Javascript prop(';checked';)不更改HTML中的实际checked属性,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,好的,这很可能是一个相当愚蠢的问题,但我很难把我的头围绕在这个问题上 在页面加载/生成时,我将根据实际的数据库条目,通过PHP将checked=“checked”添加到我的 在使用表单时,我通过Javascript/jQuery读取输入的检查状态,以便(AJAX-)提交表单并更新数据库条目 问题是,即使当我的JS求值\u this.is(':checked')返回false时,实际的HTML/DOM表示仍然显示checked属性 我知道我可以.removeAttr('checked'),但这没有
checked=“checked”
添加到我的
在使用表单时,我通过Javascript/jQuery读取输入的检查状态,以便(AJAX-)提交表单并更新数据库条目
问题是,即使当我的JS求值\u this.is(':checked')
返回false
时,实际的HTML/DOM表示仍然显示checked属性
我知道我可以.removeAttr('checked')
,但这没有意义(一切正常),也不建议这样做(请参阅…)
我的问题是:这是正常行为吗?我是否应该无视这种不一致?我在这里没有得到什么
谢谢你的时间和努力 这是完全正常的。在源中看到的属性是元素的原始状态。底层属性(即
prop()
get/set)可以不同
下面是一个例子:
var$cb=$(':checkbox');
console.log('attr:'+$cb.attr('checked'),'prop:'+$cb.prop('checked'));
$cb.prop('勾选',错误);
console.log('attr:'+$cb.attr('checked'),'prop:'+$cb.prop('checked'))代码>
尝试使用checked=“true”
代替checkeduseprop()