Динамически добавленные поля формы теряются при сбое сохранения из-за некоторой проверки - PullRequest
2 голосов
/ 06 марта 2012

Есть две модели, скажем, A и B с A имеет много B отношений. Пользователь может связать столько строк B, сколько он хочет при создании A. Приложение позволяет пользователям динамически добавлять и удалять строки B с помощью JQuery, в частности, следуя этому примеру - http://jsfiddle.net/mjaric/tfFLt/

Все работает отлично, если только сохранение (с помощью saveAll) завершилось неудачей из-за проверки на стороне сервера. В этом случае страница обновляется при отправке, и все динамически добавленные поля теряются, и пользователь должен воссоздать все строки с начала.

Есть ли способ, чтобы ни одно из динамически добавленных полей, использующих JQuery, не было потеряно и не сохранило свои старые значения (как в поведении Cake по умолчанию)? Возможно, выполнение Ajax-запроса - это один из вариантов, поэтому страница не перезагружается при сбое проверки на стороне сервера, но для меня это не вариант, поскольку форма также имеет один загружаемый файл, и, насколько я знаю, Ajax-запросы не поддерживают trsnafer файла?

1 Ответ

0 голосов
/ 07 марта 2012

Как уже указывалось, вы можете заполнить все поля статически при рендеринге представления при ошибке проверки.

Загрузка файлов невозможна через AJAX, потому что вы не можете читать файлы из JS.Хотя существует хорошо разработанный обходной путь: вы можете на мгновение поместить форму в невидимый iframe, отправить ее исходным образом и вызвать обратные вызовы, как если бы это был ответ AJAX.

плагин формы jQuery действительно хорош при отправке форм способом AJAX и выполняет последний прозрачно, когда сталкивается с полем файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...