У меня есть форма, на которой есть 20 переключателей. Мне нужно сохранить состояние переключателей, если на странице есть ошибки (при этом страница будет обновляться). Мне удалось заставить его работать на 50%. Однако, если я выбираю разные переключатели во втором обновлении, он все равно сохранит состояние первого представления.
Вот мой код:
var x= $("input[id^='question-']");
$(x).click(function(){
localStorage['radios'] = this.checked;
});
$(x).prop('checked', localStorage['radios'] == 'true');
Любая помощь будет очень признательна!
Ваш код выглядит так, что он просто перезаписывает одно и то же значение снова и снова, независимо от того, для чего его вводит, а также должен использовать событие изменения, а не щелкнуть. Попробуйте что-то вроде (непроверено):
var $x = $("input[id^='question-']");
// Set localstorage on change event per radio button
$x.on('change', function(){
localStorage[$(this).attr('name')] = this.checked;
});
// Check all radio buttons on page load against localStorage
$x.each(function(){
$(this).prop('checked', localStorage[$(this).attr('name')] == 'true');
}
Я думаю, что уникальная форма получения значений после обновления страницы отправляет информацию с помощью POST или GET после отправки формы. Он рекомендуется с помощью PHP-скрипта для обработки формы и проверки.
Если у вас есть какие-либо сомнения, вы можете увидеть здесь, как поймать информацию о формах