Если ваша форма точно представляет один экземпляр вашей модели, почему вы используете форму отправки, а не model.save();
или store.sync()
? Эти методы были разработаны для работы с вашей моделью данных и используют все классные встроенные возможности данных ExtJS.
В документации для Ext.data.Model под подзаголовком "Использование прокси" есть примеры для различных операций, которые вы можете захотеть выполнить (GET, PUT, POST, DELETE - иначе загрузка, сохранить, сохранить, уничтожить).
Затем вы можете прикрепить некоторые обратные вызовы к методу model.save (), чтобы вы знали, была ли операция успешной или неудачной (возможно, из-за проверки на стороне сервера).
Вот сообщение на форумах Sencha, рассказывающее о вашем конкретном случае использования: ExtJS 4 Синхронизация и обработка успеха / сбоя
Суть в том, что если проверка на стороне сервера вернула ошибку с содержимым JSON, например:
{ "success": "false", "message": "Error message goes here." }
Затем вы можете сохранить свою модель, отловить ответ об ошибке и использовать этот дополнительный элемент JSON сообщения, чтобы предупредить пользователя, почему он не прошел проверку на стороне сервера. Конечно, вы можете вернуть более подробное сообщение JSON, если хотите, но это подтверждает концепцию. Расширьте, чтобы установить ваше приложение.
myExtModelInstance.save({
success: function(rec, op) {
// do something
},
failure: function(rec, op) {
// Lets show a message for the failure with the
// content from the server's returned failure JSON
Ext.Msg.alert("Failed",op.request.scope.reader.jsonData["message"]);
}
});