Есть несколько способов сделать это. Я предпочитаю подписаться на IO Pipeline Topics
Если есть ошибки, подпишитесь на тему /dojo/io/error
. Вот пример, который будет Growl ошибок.
dojo.subscribe("/dojo/io/error", function(/*dojo.Deferred*/ dfd, /*Object*/ error){
// Triggered whenever an IO request has errored.
// It passes the error and the dojo.Deferred
// for the request with the topic.
var responseTextObject = dojo.fromJson(error.responseText)
var growlMessage = '';
if (responseTextObject && responseTextObject.message) {
growlMessage += responseTextObject.message
} else {
// Don't Growl the xhr cancelled messages.
if (error.message == 'xhr cancelled') {
return;
}
growlMessage = error.message
}
new ext.Growl({
message: growlMessage
});
});
Сервер должен предоставить все подробности ошибки в ответе. В этом примере ожидается ответ в формате JSON, но если он не предоставлен, ошибка по-прежнему отображается.
Если вы хотите увидеть хороший неверный стиль поля, поместите виджеты в dijit.form.Form