Extjs 更改组件的初始属性
我有一个numberfield,我用enforceMaxLength设置maxLength属性。因此,该字段不接受maxLength上的值,到目前为止还不错 我想根据其他组件值更改此maxLength属性。我尝试了几种方法,但没有成功。它设定了价值,但没有成功 问题是,如何在渲染后更改组件的初始属性Extjs 更改组件的初始属性,extjs,extjs4.2,Extjs,Extjs4.2,我有一个numberfield,我用enforceMaxLength设置maxLength属性。因此,该字段不接受maxLength上的值,到目前为止还不错 我想根据其他组件值更改此maxLength属性。我尝试了几种方法,但没有成功。它设定了价值,但没有成功 问题是,如何在渲染后更改组件的初始属性 { xtype: 'combobox', fieldLabel: 'PROMOSYON TİPİ', name: 'PROMO_TYPE', id: 'promo_t
{
xtype: 'combobox',
fieldLabel: 'PROMOSYON TİPİ',
name: 'PROMO_TYPE',
id: 'promo_type',
displayField: 'PROMO_TYPE_NAME',
valueField: 'PROMO_TYPE_VALUE',
store: promoType,
queryMode: 'local',
inputWidth: 250,
labelWidth: '280px',
margin: '0 0 15 0',
listeners: {
change: function(cb,nv) {
if (nv != 0 || nv != 2) {
var pd = Ext.getCmp('promo_disc');
Ext.apply(pd, {maxLength: 8});
}
}
}
},
{
xtype: 'numberfield',
name: 'PROMO_DISCOUNT',
fieldLabel: 'PROMOSYON İNDİRİMİ',
id: 'promo_disc',
inputWidth: 250,
labelWidth: '280px',
margin: '0 0 15 0',
maxLength: 3,
enforceMaxLength: true,
minValue: 0
}
基于@credenson的想法,我采取了以下方法
{
xtype: 'combobox',
fieldLabel: 'PROMOSYON TİPİ',
name: 'PROMO_TYPE',
id: 'promo_type',
displayField: 'PROMO_TYPE_NAME',
valueField: 'PROMO_TYPE_VALUE',
store: promoType,
queryMode: 'local',
inputWidth: 250,
labelWidth: '280px',
margin: '0 0 15 0',
listeners: {
change: function(cb,nv) {
if (nv != 0 || nv != 2) {
// promo_disc-inputEl is an ID for <input> element
Ext.get('promo_disc-inputEl').set({maxlength: 8});
}
}
}
},
{
xtype: 'numberfield',
name: 'PROMO_DISCOUNT',
fieldLabel: 'PROMOSYON İNDİRİMİ',
id: 'promo_disc',
inputWidth: 250,
labelWidth: '280px',
margin: '0 0 15 0',
maxLength: 3,
enforceMaxLength: true,
minValue: 0
},
设置maxLength将向组合框的标记添加一个名为maxLength的属性。因此,您可以获取标记并将maxlength属性的值设置为所需的值。或者,您可以销毁现有的ext组件,并使用新的maxLength创建一个新的组合框。