Я искал и искал на SO довольно немного для этой уникальной проблемы, но не нашел моего точного решения.jQuery: сохранить динамическую форму со значениями и перезагрузить на кнопке с обратной связью
У меня есть базовая форма с X количеством входов. В какой-то момент в форме пользователь как свобода добавлять входы посредством нажатия кнопки при необходимости. Когда они отправляют форму, она переходит на другую страницу, чтобы собирать опубликованные данные формы, но я хочу, чтобы пользователь мог щелкнуть «Назад» (или отправить их обратно программно), если сбой подачи.
У меня есть установка проверки ошибок перед отправкой через javascript, но есть и другие вещи (например, почтовая программа PHP), которые могут потерпеть неудачу, и я хочу, чтобы они могли повторно отправить свои данные.
Проблема, конечно же, заключается в том, когда браузер нажимает на нее, она - в лучшем случае - обновляет начальную форму, которая была в DOM с входными данными, но я теряю все динамически добавленные входы.
Я хочу захватить форму/данные в сеансе и повторно заполнить DOM с предоставленной версией, созданной пользователем при нажатии.
Ближайший я пришел делает что-то вроде этого на ВВЕСТИ:
var theForm = $('#myForm');
sessionStorage.setItem('formData', JSON.stringify(theForm.clone(true).html().toString());
И это на постбэка/нажмите назад:
$('#myForm').replaceWith(JSON.parse(sessionStorage.getItem("formData")));
Проблема здесь я получаю мою форму, но а не данные! Нужно ли мне перебирать каждый вход, чтобы вернуть мои данные в воссозданную форму? Почему он не захватывает данные, когда .clone(true)
ed?
кнопка возврата назад возвращает обычно кэшированную страницу, которая может быть связана с вашей проблемой в этом случае. Можете ли вы попробовать тот же процесс, который хранит текущее время в сеансе, и попытаться предупредить его о нажатии кнопки «Назад»? Вы увидите, что это ваша проблема. И я хочу указать, что я понятия не имею, что стоит за вашим объектом sessionStorage в этот момент ... –
«sessionStorage» доступен с HTML5, и внутри этого объекта я клонирую форму '$ ('# myForm') '. Я могу получить все свои динамически добавленные входы обратно через описанный выше процесс, но я не могу получить данные, которые были на этих входах. – gtr1971