Не получается задать value по умолчанию.
Есть код, который при первом вводе в input записывает value в local storage. Затем должен В любую другую форму подставлять это значение автоматически
вот код сохранения, он работает нормально, значение сохраняется в local storage один раз и больше не перезаписывается.
if (localStorage.getItem('userName') === null) {
userName = document.querySelector("#user-name").value;
localStorage.setItem('userName', userName);
};
А вот код вставки значения, и он не работает, значение просто не вставляется
if (localStorage.getItem('userName') != null) {
document.querySelector("#user-name").value = userName;
}
в
Предоставленный вами код для сохранения значения в локальном хранилище выглядит правильно, он проверяет, отсутствует ли элемент «userName» в локальном хранилище, и если это не так, он сохраняет значение ввода с идентификатором «имя пользователя» в локальном хранилище с помощью ключа 'userName'.
Однако предоставленный вами код для вставки значения из локального хранилища во входные данные не работает, поскольку он перезаписывает переменную «имя_пользователя» значением из локального хранилища. Вместо ссылки на переменную она должна ссылаться на значение, хранящееся в локальном хранилище.
Вот пример решения проблемы:
if (localStorage.getItem('userName') != null) {
document.querySelector("#user-name").value = localStorage.getItem('userName');
}
Кроме того, было бы лучше добавить прослушиватель событий, чтобы определить, когда страница была загружена, а затем получить значение, например:
window.addEventListener("load", function() {
if (localStorage.getItem('userName') != null) {
document.querySelector("#user-name").value = localStorage.getItem('userName');
}
})
Таким образом, значение будет вставлено во ввод после завершения загрузки страницы и инициализации всех элементов.
Другой альтернативой является использование sessionStorage вместо localstorage, в котором будут храниться данные только для одного сеанса браузера, а данные удаляются при закрытии окна браузера.
Стоит отметить, что разные веб-браузеры имеют разные настройки файлов cookie и хранилища, а некоторые из них могут иметь разный максимальный размер хранилища. Также важно помнить, что данные, хранящиеся в LocalStorage или SessionStorage, доступны для любого кода JavaScript, работающего на вашем веб-сайте, поэтому их нельзя использовать для хранения конфиденциальной информации.
if (localStorage.getItem('userName') != null) {
document.querySelector("#user-name").value = localStorage.getItem('userName');
}
Ты забыл сохранить значение которое получил из localStorage.
userName = localStorage.getItem('userName');
if (userName) {
document.querySelector("#user-name").value = userName;
}
Это раз.
Ты не показал код обработчика событий на 'input'. Если ты этого не сделал и просто написал так как ты показал, то в localStorage у тебя будет всегда записываться пустая строка.
Это два.
:)
Если вместо переменной написать значение, которое ты туда записал, в конце у тебя получается вот это:
document.querySelector("#user-name").value = document.querySelector("#user-name").value
))