!=运算符在假密码值上返回true?

时间:2015-02-02 18:37:23

标签: jquery css if-statement

我想检查密码输入值是否不等于密码2输入值。无论密码是否匹配,都返回true。

HTML:

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
    <form class='login' name='form'>
        <input id='pw' name='password' placeholder='Password' type='password'>
        <input id='pw2' name='password2' placeholder='Password Again' type='password'>
        <input class='animated' type='submit' value='Register'>
    </form>
</body>
</html>

的CSS:

.animated {
  transition: background 0.3s ease-in-out;
}

.notEqual {
  background-color: red;
}

jquery的:

$( document ).ready(function() {

  $('.animated').on('click', function (e) {
      if ($('#pw'.value) != $('#pw2'.value)) {
          e.preventDefault();
          $(this).addClass('notEqual');
      } else {
          console.log("Passwords are equal");
      }
  });

});

JSBIN:http://jsbin.com/vujitutere/2/

感谢。

3 个答案:

答案 0 :(得分:4)

你的语法有点不对:

($('#pw'.value) != $('#pw2'.value))

应该是

($('#pw').val() != $('#pw2').val())

您获得它的方式,您正在查看字符串value上的"#pw"属性和字符串value的{​​{1}}属性这是未定义的,将undefined传递给jQuery,它给你空数组。

答案 1 :(得分:2)

您需要使用jquery&#39; .val()。此外,错误的语法,方法调用超出了选择器:

DEMO

$( document ).ready(function() {

  $('.animated').on('click', function (e) {
      if ($('#pw').val() != $('#pw2').val()) {
          e.preventDefault();
          $(this).addClass('notEqual');
      } else {
          console.log("Passwords are equal");
      }
  });

});

答案 2 :(得分:1)

你的jQuery中有一些错误:

  $('.animated').on('click', function (e) {
      //should be $('#pw').val() instead of $('#pw'.value)
      if ($('#pw').val() != $('#pw2').val()) {
          e.preventDefault();
          $(this).addClass('notEqual');
      } else {
          console.log("Passwords are equal");
      }
  });