Задать вопрос
alex_lemurski
@alex_lemurski

Как сохранить состояния select, checkbox, radiobuttons и пр. на странице HTML?

Всем добрый день!
потихоньку строю проект на Spring Boot MVC, в качестве virew использую HTML страницы с надстройкой Thymeleaf, и возникла проблема, в том что при обновлении страницы сбрасываются все значения указанных в теме полей.

Поясняю:
к примеру, если я зайти на страницу просмотра данных объекта ".../employeeView/5" (5 - это уник ID генерируемый БД), далее на этой странице есть кнопка "Править", нажимаю ее захожу на ".../employeeUpdate/5" (ID тот же понятно дело) все настроенные поля select, chexbox и т.д. сбрасываются. Да, я находил JS скрипты которые сохраняют состояния этих полей, и работают как надо, но есть нюанс! Дело в том что если после правки предыдущей страницы зайти на страницу другого объекта, к примеру ".../employeeView/6", а потом через кнопочку на ".../employeeUpdate/6", то JS скрипт подгружает сохраненные данные полей с предыдущей версии страницы .../employeeUpdate, не объекта с ID=5, а именно версии страницы.
Вопрос: возможен ли вариант JS скрипта учитывающий или ID из URL что-бы подгружать поля текущей страницы, или оперативно сохранять страницу View перед тем как и с которой я захожу на Update этого объекта, и подгружать данные именно с нее?

Я конечно решил вопрос сохранения текущих данных полей на стороне сервера, но контроллер выглядит монструозно, и думаю что данный функционал лучше возложить на фронт.
  • Вопрос задан
  • 261 просмотр
Подписаться Простой Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Не совсем понятно, что именно вам нужно сохранять и что именно не работает.
Временное состояние формы, чтобы пользователь мог закрыть страницу, не отправляя изменения на сервер, и вернуться к ней позже? Или прям полноценное редактирование?

Если второе, то это и должно храниться на сервере. Или у вас при открытии формы поля формы не заполняются значениями из БД и она пуста? Тогда это отдельная проблема, не имеющая никакого отношения к JS.

Если же первое, то у вас, как я понял, уже есть какой-то скрипт, только он багованный - показывайте, мы вам поможем разобраться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Не знаю может быть я не правельно понял. Вам надо сохранить состояние чекбоксов и т.д. Тогда записывайте сшстшяние в localStorage.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы