防止将数据保存到localStorage,直到所有输入都填满

时间:2018-05-09 19:31:18

标签: javascript local-storage

我有两个输入。一个用于登录,另一个用于密码。但是在存储到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);
  }
}

1 个答案:

答案 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;
}

注意:我只是重构了代码以使其工作。在打开漏洞时,将密码等用户输入存储在本地存储中是一个坏主意。