У меня крошечная проблема, которая сводит меня с ума на несколько дней.У меня есть панель формы:
Ext.define('EC.view.PasswordPanel', {
extend: 'Ext.form.Panel',
alias: 'widget.pwdpanel',
bodyPadding: 15,
initComponent: function() {
this.initialConfig = {url:'/password/'};
this.fieldDefaults = {
labelAlign: 'right',
labelWidth: 135,
msgTarget: 'side',
allowBlank: false,
inputType: 'password'
};
//this.listeners = {
//// circumvent broken formBind
//validitychange: function(comp, valid) {
//this.down('button').setDisabled(!valid);
//}};
this.buttons = [{
text: 'Change',
formBind: true,
scope: this,
handler: function() {
this.submit({
success: function(form, action) {
Ext.Msg.alert(
'Success',
'<p>Password change has been scheduled successfully.</p>' +
EC.DELAY_NOTICE);
form.reset();
},
failure: function(form, action) {
if ('result' in action &&
'msg' in action.result) {
Ext.Msg.alert('Error', action.result.msg);
}
}
});
}
}];
this.items = [ {
xtype: 'textfield',
name: 'pw_old',
fieldLabel: 'Old password'
}, {
xtype: 'textfield',
name: 'pw_new1',
id: 'pw_new1',
fieldLabel: 'New password',
minLength: 8,
maxLength: 16
}, {
xtype: 'textfield',
name: 'pw_new2',
fieldLabel: 'Confirm new password',
} ];
this.callParent(arguments);
}
});
, для которой я создаю вкладку из TabPanel:
{
title: 'Change Password',
items: { xtype: 'pwdpanel' },
},
Теперь проверка работает отлично, но кнопка «Изменить» не работаетt отключен, пока форма недействительна.Для ясности: когда я нажимаю на него, он не отправляет, но я чувствую, что его следует отключить?
Я делаю что-то явно не так?Другая панель форм во второй вкладке работает просто отлично.
Я могу обойти проблему с помощью прослушивателя, который я закомментировал, но я понимаю, что он должен работать без.
PS Не стесняйтесьуказать на любые глупости / плохой стиль, я совершенно новичок в ExtJS.