2010-09-23 58 views
3

林建设ExtJS的一个应用程序,我有一个提交失败函数像这样的形式:ExtJS的 - 形式失败的MessageBox

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.它返回“客户”。现在我如何得到实际的错误信息。

希望这是有道理

/淑娜

回答

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

谢谢!那正是我想要的! – sunebrodersen 2010-09-30 18:22:59

+0

很高兴帮助:) – SW4 2010-10-01 13:46:20