我创建了自定义小部件,它将复选框和标签元素合并为一个。这两个元素都可以在对话框中进行编辑,但有时复选框不会从选中变为未选中,反之亦然,当查看HTML时,一切都是正确的。
用于更改复选框状态的代码:
data: function () {
var checkbox = this.element.findOne('.checkbox-value');
if (checkbox != null) {
if (this.data.isChecked && !checkbox.hasAttribute('checked')) {
checkbox.setAttribute('checked', 'checked');
} else if (!this.data.isChecked && checkbox.hasAttribute('checked')) {
checkbox.removeAttribute('checked');
}
}
}

Incorrectly displayed checkbox
我无法100%重现这种情况,有时一个复选框不会改变其状态,但所有其他复选框都可以正常工作。保存内容并重新加载页面后,复选框状态设置正确,但更改后不会更改。
如果更改了标签文本,则始终更新文本。
这似乎是一些缓存问题,但为什么只有一些复选框没有更新?