24 小时密码数组给出语法错误

24hr password array giving syntax errors

我制作了一个脚本,(应该)每天使用一组密码每天更改密码,但我不断收到各种错误。

<script>
</script>
<form>
  <input type="text" placeholder="Username" id="text1" /><br>
  <input type="password" placeholder="Password" id="text2" /><br>
  <input type="button" class="button4" style="background-color:#9c9c9c" value="Login" onclick="javascript:validate()" />
</form>
<script type="text/javascript">
  type = "text/javascript"
  window.onload = function() {
    chgDailyImg();
  }

  function chgDailyImg() {
    var imagearray = new Array();
    imagearray[0] = "9G7DcwnWafg*EtMH";
    imagearray[1] = "MDe^5qHTG#P9dHBm";
    imagearray[2] = "h%$u@2Nfu8FL9H+R";
    imagearray[3] = "X&NB5tYdUs5u@G#z";
    imagearray[4] = "k#Rc3LGsCdu4q%qZ";
    imagearray[5] = "!$p!Ss5BA%#4zeAa";
    imagearray[6] = "qz63!tue3WCUxJ@R";

    var d = new Date(); /*** create a date object for use ***/
    var i = d.getDay();
  function validate() {
    if (document.getElementById("text1").value == "student21" &&
      document.getElementById("text2").value == imagearray[i]) {
      console.log("RIGHT")
    } else {
      console.log("WRONG")
      }
    }
  }

</script>

主要是一直说“validate”没有定义...

"<a class='gotoLine' href='#41:132'>41:132</a> Uncaught ReferenceError: validate is not defined"

"<a class='gotoLine' href='#65:49'>65:49</a> Uncaught ReferenceError: imagearray is not defined"

您的函数 validate() 在函数 chgDailyImg() 中有一个作用域。将其移出函数可解决问题。

<form>
  <input type="text" placeholder="Username" id="text1" /><br>
  <input type="password" placeholder="Password" id="text2" /><br>
  <input type="button" class="button4" style="background-color:#9c9c9c" value="Login" onclick="javascript:validate()" />
</form>
<script type="text/javascript">
  window.onload = function() {
    chgDailyImg();
  }
  
  const imagearray = new Array();
        imagearray[0] = "9G7DcwnWafg*EtMH";
        imagearray[1] = "MDe^5qHTG#P9dHBm";
        imagearray[2] = "h%$u@2Nfu8FL9H+R";
        imagearray[3] = "X&NB5tYdUs5u@G#z";
        imagearray[4] = "k#Rc3LGsCdu4q%qZ";
        imagearray[5] = "!$p!Ss5BA%#4zeAa";
        imagearray[6] = "qz63!tue3WCUxJ@R";
  let i = 0;
  
  function chgDailyImg() {
    let d = new Date(); /*** create a date object for use ***/
    i = d.getDay();
  }

  function validate() {
    if (document.getElementById("text1").value == "student21" &&
      document.getElementById("text2").value == imagearray[i]) {
      console.log("RIGHT")
    } else {
      console.log("WRONG")
    }
  }
</script>

更新: 您的变量和函数的 Scope 存在一些问题。希望这篇阅读能让你有更好的认识。

Scope - MDN Web Docs https://developer.mozilla.org/en-US/docs/Glossary/Scope