ExtJS - 表单失败消息框

3
我正在使用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');
   }
  });                     
 }
}] 

现在我想展示错误的原因,这些错误是由未正确填写的字段引起的。
例如,我有一个文本框,其内容如下:
vtypeText:'Please type in valid email',
vtype:'email'

我发现可以使用a.resultType,它返回"client"。现在我该如何获取实际的错误消息呢?
希望这样说得通。
/Sune
1个回答

4

据我了解 - 你想向用户报告所有无效字段的列表以及每个字段的原因?

可以使用以下代码实现:

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

YOUR_FORM是封装表单的formpanel组件的名称。

它的作用是循环遍历表单中的每个字段,如果有错误(无效),则向用户报告此错误。为了用户的健康考虑,您可能希望将每个错误行添加到一个变量中,然后在最后生成一个单独的消息,而不是逐个报告每个错误。

例如:

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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接