Страница перезагружается до достижения оператора else в JavaScript - PullRequest
0 голосов
/ 14 декабря 2018

Проблема в коде ниже заключается в операторе if ... else.Если пользователь пытается создать учетную запись с именем пользователя или электронной почтой, уже присутствующими в localStorage, программа отображает сообщение об ошибке.Это работает нормально, однако, если утверждение if ложно, страница перезагружается до достижения оператора else.Я использовал console.log, чтобы проверить, выполняется ли оператор else, однако, как указано выше, страница перезагружается, прежде чем когда-либо достигнет оператора else.Я также попытался поместить event.preventDefault в оператор if, однако это тоже не работает.Любая помощь будет принята с благодарностью.Заранее спасибо.

Редактировать: функция вызывается с помощью onclick в html при нажатии кнопки.

 function storeRegistrationInfo(){
            let person = {};
            person.fullname = document.getElementById("regFullName").value;
            person.username = document.getElementById("regUserName").value;
            let username = document.getElementById("regUserName").value;
            person.email = document.getElementById("regEmail").value;
            person.password = document.getElementById("regPassword").value;
            person.repeatedPassword = document.getElementById("repeatPassword").value;

            let per = JSON.parse(localStorage.getItem(username));

            if (person.username === per.username || person.email === per.email){
                document.getElementById("signUpStatus").innerText = "Username or Email already taken!";
            }else {
                localStorage[person.username] = JSON.stringify(person);
            }
            event.preventDefault();
        }

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Возможно, нужно добавить:

if( !(person === undefined)  &&(person.username === per.username || person.email === per.email))
0 голосов
/ 14 декабря 2018

Андрэ, вы не получаете объект события.

Предположим, вы запускаете это как часть onClick ()?Попробуйте добавить:

function storeRegistrationInfo(event)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...