重新加载页面,然后到达javascript中的else语句

时间:2018-12-13 23:38:59

标签: javascript html if-statement local-storage reload

下面的代码中的问题存在于if ... else语句中。如果用户尝试使用localStorage中已经存在的用户名或电子邮件创建帐户,则程序将显示错误消息。这可以正常工作,但是如果if语句为false,则在到达else语句之前将重新加载页面。我已经使用console.log来检查else语句是否运行,但是如上所述,页面在到达else语句之前会重新加载。我也曾尝试将event.preventDefault放在if语句中,但这也不起作用。任何帮助将不胜感激。预先感谢。

编辑:按下按钮时,使用html中的onclick调用该函数。

 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 :(得分:0)

安德烈,您没有收到事件对象。

假设您是作为onClick()的一部分触发此操作的? 尝试添加:

function storeRegistrationInfo(event)

答案 1 :(得分:0)

可能需要添加:

if( !(person === undefined)  &&(person.username === per.username || person.email === per.email))