HTML / JAVASCRIPT为什么不重新设置我的设置密码?

时间:2019-06-05 15:08:12

标签: javascript html

我正在尝试使用设置的密码创建登录系统,但是它只会看到我用javascript设置的第一个密码。


    <p id="loginuser" style="display: block">Username:

      <input type="text" name="text1">

    </p>

    <p id="loginpass" style="display: block">Password:

    <input type="password" name="dasnk2">`

    </p>
    <input id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="javascript:validate(document.getElementsByName("text1")[0].value,"Harrison",document.getElementsByName("dasnk2")[0].value,"88888888a"); validate(document.getElementsByName("text1")[0].value,"Isaac",document.getElementsByName("dasnk2")[0].value,"Tewst"); validate(document.getElementsByName("text1")[0].value,"Adam",document.getElementsByName("dasnk2")[0].value,"faa222014"); validate(document.getElementsByName("text1")[0].value,"Kelvin",document.getElementsByName("dasnk2")[0].value,"six921six921"); validate(document.getElementsByName("text1")[0].value,"Alap",document.getElementsByName("dasnk2")[0].value,"99999999nine")" >

这是我的验证功能,更加清楚。 (已编辑)

    function validate(text1,dasnk2,text3,text4) {

      if (text1 === dasnk2 && text3 === text4) {
          var redirect = document.getElementById('redirect');
          var embed = document.getElementById("embed");

          redirect.style.display = "block";
          embed.style.display = "none";

          setTimeout(function() {
            embed.style.display = "block";
            redirect.style.display = "none";
            loginuser.style.display = "none";
            loginpass.style.display = "none";
            login.style.display = "none";
            header.style.display = "none";
          }, 5000);
      } else {
        var incorrect = document.getElementById('incorrect');
        incorrect.style.display = "block";
        setTimeout(function() {
            incorrect.style.display = "none";
          }, 2000);
    }
    }

1 个答案:

答案 0 :(得分:0)

您有多个onlick事件。每个覆盖前一个。因此,最后唯一要调用的onclick事件是最后一个。如果要在嵌入式事件处理程序中调用多个函数,则需要使用分号。

onclick="function1(); function2(); function3();"

在您的情况下,validate可能正在尝试取消提交事件。您不会取消它,因为没有退货。所以必须是

onclick="return function1() && function2() && function3();"

理想情况下,您不会使用内联事件处理程序,但可以将事件与addEventListener绑定。

document.getElementById("myForm").addEventListener("submit", function () {
  var valid1 = validate(...)
  var valid2 = validate(...)
  var valid3 = validate(...)

  return valid1 && valid2 && valid3;
});