ExtJS-组合更改时禁用/启用元素

时间:2018-12-14 10:10:34

标签: javascript extjs

标题说明了很多。我将在下面为您提供示例:

let scalesField = {
    xtype: 'combo',
    name: property.name + 'scale',
    listeners: {
        change: function (combo, selectedValue) {
            // here would be some logic
            // Tried with:
            Ext.Array.each(possibleValues, function (single, index) {
                possibleValues[index].disabled = true;
                if (possibleValues[index].scale_id === selectedValue) {
                    possibleValues[index].disabled = false;
                }
            });
        }
    }
};

if (possible_values.length > 0) {
    Ext.Array.each(possible_values, function (single, index) {
        fields.push({
            xtype: 'checkboxfield',
            fieldLabel: possible_values[index].name,
            name: possible_values[index].name,
            labelWidth: 100,
        });
    });
}

变量“ possible_values”包含“ if”块中定义的所有可能的复选框。我想根据用户在组合中选择的选项来禁用或启用复选框(选择选项下拉菜单)。

运行如下代码后,我可以在控制台中看到禁用的属性已更改,但不适用于视图。

如何在ExtJS中解决此问题?

1 个答案:

答案 0 :(得分:1)

您可以按以下方式使用它:-

Ext.ComponentQuery.query('checkboxfield[name=' + possibleValues[index].name + ']')[0].setDisabled(true /*/false*/ );