我有两个输入。一个用于登录,另一个用于密码。但是在存储到LocalStorage之前我需要验证输入。关键是尽管空密码字段,数据保存到LS。尝试使用Break但似乎没有成功。 问题是如何防止将数据保存到本地存储,直到用户填写所有输入。
function validate() {
var userInput = document.querySelectorAll(".form__input");
var regex = /[^a-z|^A-Z|^0-9|^\s^\w+^\"']/;
for(var i = 0; i < userInput.length; i++) {
if(userInput[i].value === "") {
alert("Please fill all required fields!");
break;
}
else if(userInput[i].value.match(regex)) {
alert("Please use an appropriate symbols!");
break;
}
localStorage.setItem('Login', userInput[0].value);
}
}
答案 0 :(得分:1)
最后添加一个else语句。
function validate() {
if(validateFields){
localStorage.setItem('Login', userInput[0].value);
}
}
function validateFields(){
var retVal = false;
var userInput = document.querySelectorAll(".form__input");
var regex = /[^a-z|^A-Z|^0-9|^\s^\w+^\"']/;
for(var i = 0; i < userInput.length; i++) {
if(userInput[i].value === "") {
alert("Please fill all required fields!");
break;
}
else if(userInput[i].value.match(regex)) {
alert("Please use an appropriate symbols!");
break;
}else{
retval = true;
}
}
return retval;
}
注意:我只是重构了代码以使其工作。在打开漏洞时,将密码等用户输入存储在本地存储中是一个坏主意。