【发布时间】:2018-12-13 23:38:58
【问题描述】:
下面代码中的问题在于 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();
}
【问题讨论】:
-
对不起,当注册按钮被按下时,使用onclick函数调用该方法。
标签: javascript html if-statement local-storage reload