ExtJs表单面板中的复选框没有正确绑定,即当值从checked(值为1)更改为未选中(值为0)时,仍会检查相应字段的模型中的值(1)。版本6.2.0.981中会出现此问题,但该问题在最新版本6.2.1.167中不可重现。这是相同的小提琴,在版本之间切换并检查问题。如果6.2.0.981版本中存在此问题的解决方法,请告诉我们。另外在6.2.1.167的发行说明中,它告诉“EXTJS-21886 - 复选框没有返回正确的值”是固定的,但如何在以前的版本中进行此修复?
答案 0 :(得分:3)
您可以通过添加
来解决此问题uncheckedValue: 0
到你的复选框配置。 Excerpt from the docs:
默认情况下,这是未定义的,这导致在提交表单时没有为复选框字段提交任何内容
错误是在模型更新期间没有提交任何内容,并且由于没有提供任何内容,因此模型的值未更新。
答案 1 :(得分:0)
在ExtJS 6.6中,我仍在试图弄清楚这一点,它并没有我所希望的那样简单(将复选框绑定到模型,并将1表示true,0表示false进行绑定)。我想避免在模型中包含一个带有中间人绑定的公式,因为我必须为每个复选框都拥有一个公式,这似乎很愚蠢。.扩展组合框类并覆盖如下的getValue
方法。对于未选中的,可接受的答案可以正常工作,但我仍在选中true
。
Ext.define('Components.BinaryCheckBox', {
extend: 'Ext.form.field.Checkbox',
xtype: 'binary-checkbox',
getValue: function () {
if (this.value) {
return 1;
} else {
return 0;
}
},
});