错误在哪里?

时间:2018-06-14 03:51:58

标签: javascript html css if-statement

当我点击按钮时,它不起作用,我将“logado.html”,我不会收到警报。 我需要帮助,为什么收到这条消息? 我需要在单击“登录”按钮时,js验证“Login”或“Loginsenha”是否为空。

HTML:

<!DOCTYPE html>

<html>
    <link rel="stylesheet" type="text/css" href="css/login.css">
    <meta charset="utf-8">
    <head>
        <title>Login uCar</title>
    </head>


    <body>
        <div class="loginbox">
            <img src="img/RA.png" class="avatar">
            <h1>Login</h1>
            <div class="espaçobugado"></div>
            <form>
                <p>RA</p>
                <div class="espaçobugado2"></div>
                <input type="number" name="username" value="" id="login">
                <p>Senha</p>
                <div class="espaçobugado2"></div>    
                <input type="password" name="password" placeholder="" id="loginsenha">
                <input type="submit" name="login" value="Login" onclick="myLogin()"><br>
                <a href="">Perdeu sua senha?</a><br>
                <div class="espaçobugado"></div>
                <a href="">Não tem uma conta?</a>
            </form>
        </div>
        <script type="text/javascript" src="js/login.js"></script>

    </body>

</html>

JS:

var x = document.getElementById("login").value;
var y = document.getElementById("loginsenha").value;

function myLogin() {

    if (x = "") {
        alert("Coloque seu RA por favor.")
    }
    else if (y = "") {
            alert("Coloque sua senha por favor.")
        }
        else {
            window.open("logado.html")
        }
}

3 个答案:

答案 0 :(得分:1)

1)使用===

2)获取x值和yinside函数no out函数。

function myLogin() {

  var x = document.getElementById("login").value;
  var y = document.getElementById("loginsenha").value;

  if (x == "") {
    alert("Coloque seu RA por favor.");
  }

  else if (y == "") {
    alert("Coloque sua senha por favor.");
  }

  else {
    window.open("logado.html")
  }

}

&#13;
&#13;
function myLogin() {
      var x = document.getElementById("login").value;
      var y = document.getElementById("loginsenha").value;

  if (x == "") {
    alert("Coloque seu RA por favor.");
  }

  else if (y == "") {
    alert("Coloque sua senha por favor.");
  }

  else {
    window.open("logado.html")
  }

}
&#13;
<div class="loginbox">
  <img src="img/RA.png" class="avatar">
  <h1>Login</h1>
  <div class="espaçobugado"></div>
  <form>
    <p>RA</p>
    <div class="espaçobugado2"></div>
    <input type="number" name="username" value="" id="login">
    <p>Senha</p>
    <div class="espaçobugado2"></div>    
    <input type="password" name="password" placeholder="" id="loginsenha">
    <input type="submit" name="login" value="Login" onclick="myLogin()"><br>
    <a href="">Perdeu sua senha?</a><br>
    <div class="espaçobugado"></div>
    <a href="">Não tem uma conta?</a>
  </form>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

更新您的功能。

将x,y声明保留在函数内,否则它将始终只有在脚本运行时声明的空值。我们需要每次点击按钮时的当前值。所以我们需要在函数中保留声明。改变了if / else语句。

x=""是赋值语句,不会返回false。

而是使用x === ""或我在答案中建议的

function myLogin() {
  var x = document.getElementById("login").value;
  var y = document.getElementById("loginsenha").value;

  if (!x.trim()) {
    alert("Coloque seu RA por favor.")
  } else if (!y.trim()) {
    alert("Coloque sua senha por favor.")
  } else {
    window.open("logado.html")
  }
}

&#13;
&#13;
<!DOCTYPE html>

<html>
<link rel="stylesheet" type="text/css" href="css/login.css">
<meta charset="utf-8">

<head>
  <title>Login uCar</title>
</head>


<body>
  <div class="loginbox">
    <img src="img/RA.png" class="avatar">
    <h1>Login</h1>
    <div class="espaçobugado"></div>
    <form>
      <p>RA</p>
      <div class="espaçobugado2"></div>
      <input type="number" name="username" value="" id="login">
      <p>Senha</p>
      <div class="espaçobugado2"></div>
      <input type="password" name="password" placeholder="" id="loginsenha">
      <input type="button" name="login" value="Login" onclick="myLogin()"><br>
      <a href="">Perdeu sua senha?</a><br>
      <div class="espaçobugado"></div>
      <a href="">Não tem uma conta?</a>
    </form>
  </div>
  <script type="text/javascript" src="js/login.js"></script>


  <script>
    function myLogin() {
      var x = document.getElementById("login").value;
      var y = document.getElementById("loginsenha").value;

      if (!x.trim()) {
        alert("Coloque seu RA por favor.")
      } else if (!y.trim()) {
        alert("Coloque sua senha por favor.")
      } else {
        window.open("logado.html")
      }
    }
  </script>
</body>

</html>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您的if语句使用的是赋值,而不是条件逻辑。例如,

x = "" 

应该说

x === ""

您当前的逻辑评估如下:

if (x = "") ~> if ("") ~> if (false)

所以你的条件永远不会成立,否则总是被称为。