На моем поле (ах) в FormPanel я добавил слушателя blur
. Если это событие происходит, я выполняю проверку формы следующим образом:
listeners:{
scope: this,
blur: function(field, value){
var username = field;
if (username.getValue() == '') {
username.markInvalid('This field is required');
} else {
Ext.Ajax.request({
url: 'users/validateForm',
method: 'POST',
params: 'username=' + username.getValue(),
success: function(response, opts) {
var jsonData = Ext.decode(response.responseText);
if (jsonData.msg.username != '') {
username.markInvalid(jsonData.msg.username);
}
}
});
}
}
}
buttons: [{
text: 'Save',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
alert('test');
}
},
formBind:true
},{
text: 'Cancel'
}]
Как объясняется в документации к Ext JS, функция markInvalid () влияет только на само поле. Но я также хочу установить форму как недействительную, чтобы кнопка отправки была отключена, когда форма недействительна. В настоящее время функция isValid () в форме всегда возвращает true, хотя поля (поля) помечены как недействительные.
Теперь у меня вопрос: как я могу добиться того, чтобы форма также была неверной с кодом выше?
Большое спасибо за вашу помощь!