下面的代码中的问题存在于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();
}
答案 0 :(得分:0)
安德烈,您没有收到事件对象。
假设您是作为onClick()的一部分触发此操作的? 尝试添加:
function storeRegistrationInfo(event)
答案 1 :(得分:0)
可能需要添加:
if( !(person === undefined) &&(person.username === per.username || person.email === per.email))