Сообщение от Lefseq
|
Почему же не использую?
|
Потому, что в вашем коде серверу ваша форма нафиг не нужна, не отправляете ее вы. Следовательно вам нужны только два поля и две кнопки без формы. На эти кнопки нужно повесить обработчик события, в котором для кнопки запоминания и перенаправления нужно проверять ввод и если ОК, то перенаправить, а для кнопки удаления очищать локальное хранилище. Можете и два отдельных обработчика, это уже как душе угодно.
Для этого достаточно:
<section id="user-greeting">
<label>
Имя
<input type="text" autocomplete="name" required>
</label>
<label>
Фамилия
<input type="text" autocomplete="family" required>
</label>
<button name="mem">Запомнить</button>
<section>
Привет, <span class="name"></span> <span class="family"></span>, добро пожаловать на сайт!
<button name="del">Забудь обо мне!</button>
</section>
</section>
и суть обработчика:
document.querySelectorAll("button").forEach((b) => {
b.addEventListener("click", (b) => {
if(b.target.name=='mem') {
var err = false, mem = [];
document.querySelectorAll("#user-greeting [required]").forEach(function(f) {
if(!f.value.trim()) {
//поле не заполнено, вывод ошибки и запрет перенаправления err = true
} else mem.push(f.value); //запомнить ввод
});
if(!err) { //поля заполнены
localStorage.name = mem.join(' '); //запомнить ввод в хранилище
location.href = URL; //перенаправление на URL
}
} else delete localStorage.name; //удалить запомненное
});
});
А вот проверка полей, тут можно
издеваться до бессовестного.