2010-09-23 29 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