ExtJs Checkbox绑定问题

时间:2017-05-03 04:50:01

标签: extjs checkbox

ExtJs表单面板中的复选框没有正确绑定,即当值从checked(值为1)更改为未选中(值为0)时,仍会检查相应字段的模型中的值(1)。版本6.2.0.981中会出现此问题,但该问题在最新版本6.2.1.167中不可重现。这是相同的小提琴,在版本之间切换并检查问题。如果6.2.0.981版本中存在此问题的解决方法,请告诉我们。另外在6.2.1.167的发行说明中,它告诉“EXTJS-21886 - 复选框没有返回正确的值”是固定的,但如何在以前的版本中进行此修复?

CheckBox Bind issue Fiddle

2 个答案:

答案 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;
    }
},

});