Показать сообщение отдельно
  #6 (permalink)  
Старый 06.09.2019, 08:35
Кандидат Javascript-наук
Отправить личное сообщение для Lefseq Посмотреть профиль Найти все сообщения от Lefseq
 
Регистрация: 19.04.2019
Сообщений: 124

Malleys,
Код рабочий, но нужно кое что исправить. Буду признателен, если поможете.

1. Нужно убрать на страницах кнопку/функцию "Забудь обо мне!"
2. Надо чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности, чтобы можно было поставить их в разные части страницы.

<section id="user-greeting">
    <form>
        <label>
            Имя
            <input type="text" autocomplete="name" name="name" required>
        </label>
        <label>
            Фамилия
            <input type="text" autocomplete="family-name" name="family-name" required>
        </label>
        <button onclick="location.href='https://site.ru/page2.html'">Запомнить</button>
    </form>
    <section>
        Привет, <span class="name"></span>, добро пожаловать на сайт!
        <button id="user-greeting-forget-button">Забудь обо мне!</button>
    </section>
</section>


(function main() {
        var form = document.querySelector("#user-greeting > form");
        var section = document.querySelector("#user-greeting > section");
        
        function changeView() {
            if ("name" in localStorage) {
                form.style.display = "none";
                section.style.display = "";
                document.querySelector("#user-greeting .name").textContent = localStorage.name;
            } else {
                section.style.display = "none";
                form.style.display = "";
            }
        }
        
        form.addEventListener("submit", function(event) {
            event.preventDefault();
            var data = new FormData(form);
            localStorage.name = [data.get("name"), data.get("family-name")].join(" ");
            changeView();
        });
        
        document.getElementById("user-greeting-forget-button").addEventListener("click", function() {
            delete localStorage.name;
            changeView();
        });
        
        changeView();
    })();
Ответить с цитированием