将2个输入与jquery进行比较

时间:2015-12-13 00:31:00

标签: javascript jquery

你好我试图比较2个不同输入中的内容。



$(document).ready(function() {
  $('#pc').keydown(function() {
    if ($('#ps').val() == $('#pc').val()) {
      alert("it worked ");
    }
  });
});

<form id="identicalForm" class="form-horizontal" action="userSignup.php" method="post">
  <fieldset>
    <div id="legend">
      <legend class="">Register</legend>
    </div>

    <div class="control-group">
      <label class="control-label" for="email">E-mail</label>


      <div class="control-group">
        <label class="control-label" for="password">Password</label>

        <div class="controls">
          <input id="ps" name="password" placeholder="" class="form-control input-lg" type="password">

          <p class="help-block">Password should be at least 6 characters</p>
        </div>
      </div>

      <div class="control-group ">
        <label class="control-label" for="password_confirm">Password (Confirm)</label>

        <div class="controls">
          <input id="pc" name="password_confirm" placeholder="" class="form-control input-lg" type="password">

          <p class="help-block">Please confirm password</p>
        </div>
      </div>
  </fieldset>
</form>
&#13;
&#13;
&#13;

这是网页的半精简版。包含在页面的顶部。如果我将警报放在if之外,每次我输入该输入框时都会弹出警报。但如果我尝试比较两个输入字段,当它们都输入相同的密码时,不会弹出任何内容。从我从其他SO帖子看到的这样,它应该工作!我仍然是js的新手,所以我可能完全在想这个。

3 个答案:

答案 0 :(得分:2)

它不使用keydown事件的原因是因为事件仅在键关闭时触发。换句话说,事件在值更新之前被触发。您将123451234进行比较,即使值相同,也不会记录按下的最后一个字符。

使用inputkeydown事件,而不是使用keyup事件:

$('#pc').on('input', function() {
  if ($('#ps').val() === $('#pc').val()) {
    console.log("it worked ");
  }
});

密钥启动时会触发keyup事件,这意味着实际更新了元素的值。同样,input事件的行为方式也相同,因为值会在值发生变化时触发。此外,input事件还将捕获粘贴事件(可能有用)。

答案 1 :(得分:2)

而不是在按下密钥之前实际执行的keydown,而是使用blurkeyup

$('#pc').on('blur', function() {
  if ($('#ps').val() == $('#pc').val()) {
    console.log("it worked ");
  }
});

答案 2 :(得分:2)

使用keyup事件。还尝试使用===来比较值,因为我们知道值将是文本类型,并且在比较之前不需要显式转换。

$(document).ready(function () {
        $('#pc').keyup(function () {
            if ($('#ps').val() === $('#pc').val()) {
                alert("it worked ");
            }
        });
});

当用户在键盘上释放键时,keyup事件将发送到元素。

Here是一个工作样本

相关问题