等变量不等于平等

时间:2018-02-02 17:19:06

标签: javascript variables

尽管两个组(userTry和username& passTry和pass)相等,但代码返回登录函数中没有发生的任何事情,当这两个组相等时处理这种情况。该页面不返回应该是用户的介绍,而是返回任何内容,我很好奇为什么没有迹象表明这两个变量是相等的

<!DOCTYPE html>
<html>
<body>

<p>Create an Account:</p>

<button onclick="create()">Sign Up</button>
<button onclick="login()">Login</button>
<button onclick="doc()">Make a Document</button>

<p id="username"></p>
<p id="pass"></p>
<p id="login"></p>
<p id="welcome"></p>
<p id="name"></p>
<p id="title"></p>
<p id="text"></p>

<script>

function create() {

    var name = prompt("Enter Your Name:", "Name");
    var username = prompt("Please enter a Username:", "username");
    var pass = prompt("Please enter a Password:", "password");

    if (username != null) {
      if (pass != null) {
        document.getElementById("name").innerHTML =
        "You have signed up successfully!";
      }
    }
}

function login() {

  var userTry=prompt("Enter Your Username", "Username");
  var passTry=prompt("Enter Your Password", "Password");

  if (userTry==username && passTry==pass) {
    document.getElementById("name").innerHTML =
    "Welcome! Current User: " + name;
  }
}

</script>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

DF[1] 3.4 2.3 ... DF[2] 12 ... DF[3] 63.2 ... 函数的范围内,未声明变量for(i in 1:nrow)login。这应该会给你一个ReferenceError。

答案 1 :(得分:0)

由于您已在函数SpringSecurityUtils.clientRegisterFilter( 'HvFilters', SecurityFilterPosition.PRE_AUTH_FILTER.order) 中定义了变量usernamepass,因此它们的范围在函数结束后结束。因此,要在全球范围内使用它们,您需要在全局范围内声明它们。

create()

答案 2 :(得分:0)

像其他人所说的那样,变量超出了范围,所以你可能会得到一个看不见的JS错误。在搞乱JS / Jquery时使用开发人员工具通常是一个好主意。 Chrome和Firefox都内置了开发人员工具:

如果你正在使用Chrome: 选项&gt;更多工具&gt;开发人员工具

如果你正在使用Firefox: 选项&gt; Web开发人员&gt;开发人员工具栏

如果您打开它们然后转到您的页面,您应该在控制台窗口中看到错误。此外,在进行JS更改时,您可能需要定期删除缓存以摆脱旧的JS版本。