禁用多个 dateField

Disable multiple dateField's

我有一个复选框可以控制 ExtJs 中的 4 个日期字段。我希望能够给他们一个通用的 属性 以便能够使用一个命令禁用所有字段。 我假设有一种更简单的方法可以做到这一点。它有效,但它是一大块代码。

到目前为止,这是复选框的更改事件实现:

 change: function (cmp, newValue, oldValue, eOpts) {

        var dt1 = cmp.up().down('#Dtf1');
        dt1.setDisabled(newValue);
        var dt2 = cmp.up().down('#Dtf2');
        dt2.setDisabled(newValue);
        var dt3 = cmp.up().down('#Dtf3');
        dt3.setDisabled(newValue);
        var dt4 = cmp.up().down('#Dtf4');
        dt4.setDisabled(newValue);      }

您可以添加一个属性,例如:

{
    xtype: 'textfieid',
    itemId: 'Dtf1',
    dtf: true
}

然后你就可以查询了:

cmp.up().query('[dtf=true]').forEach(function(item){
    item.setDisabled(newValue);
});

或者也可以使用查询,例如:

cmp.up().query('#Dtf1, #Dtf2, #Dtf3, #Dtf4').forEach(function(item){
    item.setDisabled(newValue);
});