如果else语句,Window.onload无法在内部运行

时间:2019-09-06 06:27:38

标签: javascript vue.js

我的代码有什么问题?

如果用户输入-bday与json-bday匹配,那么它将显示我的表单(由于数量很多,我没有包含它)

其他,它不会显示表格

checkBirthday: function() {
  let userBirthday = moment(this.userBday).format("MM DD, YYYY"),
    resultBirtday = moment(this.results.BIRT_D).format("MM DD, YYYY");
  if (userBirthday === resultBirtday) {
    alert("CORRECT");
    window.onload = function() {
      const btn = document.querySelector("#show-form");
      const form = document.querySelector(".form");
      const close = document.querySelector(".close-container");
      btn.addEventListener("click", () => {
        form.classList.add("form-show");
        close.classList.add("x-show");
      });
      close.addEventListener("click", function() {
        close.classList.remove("x-show");
        form.classList.remove("form-show");
      });
    };
  } else {
    alert("WRONG");
    window.stop();
  }
}

1 个答案:

答案 0 :(得分:0)

window.onload = function(){}只是将此方法分配给window的onload事件,并且其中的代码将永远不会运行,因为onload已经被调用。

您实际上不需要在此处编写onload。因此您的代码将是这样的。

checkBirthday: function() {
  let userBirthday = moment(this.userBday).format("MM DD, YYYY"),
    resultBirtday = moment(this.results.BIRT_D).format("MM DD, YYYY");
  if (userBirthday === resultBirtday) {
    alert("CORRECT");
      const btn = document.querySelector("#show-form");
      const form = document.querySelector(".form");
      const close = document.querySelector(".close-container");
      btn.addEventListener("click", () => {
        form.classList.add("form-show");
        close.classList.add("x-show");
      });
      close.addEventListener("click", function() {
        close.classList.remove("x-show");
        form.classList.remove("form-show");
      });
  } else {
    alert("WRONG");
    window.stop();
  }
}