ExtJS - 表单失败消息框

时间:2010-09-23 21:17:17

标签: javascript extjs

我在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 个答案:

答案 0 :(得分: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);
}