ExtJS - окно сообщения об ошибке формы - PullRequest
3 голосов
/ 24 сентября 2010

Я создаю приложение в ExtJS, и у меня есть форма с функцией отправки ошибок:

buttons:[{
 text: 'Bestil',
 id:'button_bestil',
 width:85,
 handler: function(){
  create.getForm().submit({
   success: function(f,a){
    //do stuff!
   },
   failure: function(f,a){
    Ext.Msg.alert('Fejl', 'Error');
   }
  });                     
 }
}] 

Теперь я хочу показать причину ошибки из полей, которые не были заполнены правильно.

F.x. у меня есть текстовое поле со следующим:

vtypeText:'Please type in valid email',
vtype:'email'

Я обнаружил, что могу использовать a.resultType. Возвращает "клиент". Теперь, как я могу получить фактическое сообщение об ошибке.

Надеюсь, это имеет смысл

/ Суни

1 Ответ

4 голосов
/ 27 сентября 2010

Из того, что я понял - вы хотите сообщить пользователю список всех недопустимых полей и причину каждого из них?

Это можно сделать с помощью кода:

YOUR_FORM.getForm().items.each(function( item ) {
   if(item.getActiveError()){
    alert('Field: '+item.name+ ' Error: ' + item.getActiveError());
   }
});

Где YOUR_FORM - имя компонента formpanel, инкапсулирующего вашу форму.

То, что это делает, циклически проходит по каждому полю в форме и, если есть ошибка (она недействительна), она сообщит об этом пользователю. Вы можете, для здравомыслия пользователей, добавить каждую строку ошибки в переменную, а затем создать одно сообщение в конце вместо того, чтобы сообщать о каждом по отдельности.

то есть: * * 1 010

var ERROR_STRING;
YOUR_FORM.getForm().items.each(function( item ) {
    if(item.getActiveError()){
  ERROR_STRING=ERROR_STRING+"The field '"+item.name+ "' is invalid, reason: " + item.getActiveError() + "<br />"; 
    }
});
if(ERROR_STRING.length>0){
    Ext.MessageBox.alert('Error',ERROR_STRING);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...