如何比较2表格输入现场

时间:2014-11-12 22:10:41

标签: javascript php forms validation

我正在尝试比较两个表单输入“密码”和重新输入密码“以确保相同。我通过将密码发送到一个单独的PHP来回复结果来验证密码(工作正常)

<script type="text/javascript">
  $(document).ready(function() {
    $('#password_feedback').load('password-check.php').show();

    $('#password_input').keyup(function() {

      $.post('password-check.php', {
          password: form.password.value
        },
        function(result) {
          $('#password_feedback').html(result).show();
        });

    });
  });
</script>

我尝试发送密码并重新输入=密码给PHP来比较没有运气。我可以将两者与每个键盘进行比较。

5 个答案:

答案 0 :(得分:1)

不需要jQuery,添加功能:

function checkPass(input) {
    if (input.value != document.getElementById('re-enter-password').value) {
        input.setCustomValidity('Passwords should match.');
    } else {
        input.setCustomValidity('');
    }
}

将此添加到您的重新输入密码:oninput="checkPass(this)"

只需在要进行比较的部分调用此函数:

function checkPass() {
    var input = document.getElementById('password');

    if (input.value != document.getElementById('re-enter-password').value) {
        input.setCustomValidity('Passwords should match.');
    } else {
        input.setCustomValidity('');
    }
}

答案 1 :(得分:0)

如何为每个输入添加一个类,然后:

if($(".password").val() == $(".re-enter-password").val()){
    alert("it matches")
} else {
    alert("no match yet");
}

答案 2 :(得分:0)

您在PHP脚本中检查了什么?有什么特别证明使用PHP的理由吗?

你只能用JS做到这一点,你不需要AJAX部分。

HTML:

<input type="password" id="password">
<input type="password" id="password_cf">    
<div class="result"></div>

JS(jQuery):

$('#password_cf').on('keyup', function(){     

    if($('#password_cf').val()== $('#password').val())
        $('.result').html('They match');
    else
        $('.result').html('They do not match');
});

小提琴:http://jsfiddle.net/2sapjxnu/

如果您只想在该字段上丢失焦点后再进行检查,则可以使用blur事件。它比对每个键进行验证的“响应性”要小一些,但我认为性能更高。

答案 3 :(得分:0)

Quick and dirty -

鉴于此标记 -

<input type="password" name="pw1" />
<input type="password" name="pw2" />

您可以使用此类代码 -

检查客户端,而无需多次往返服务器
$('[name="pw2"]').blur(function() {
    var pw1 = $('[name="pw1"]').val();
    var pw2 = $('[name="pw2"]').val();
    if(pw2 != pw1) {
        alert('passwords do not match');
    }
});

答案 4 :(得分:0)

将2个表单输入字段与JavaScript匹配,将其发送到服务器以获取断言响应可能会导致糟糕的用户体验,因为如果您在每个keyPress上执行此操作,则会产生不必要的互联网流量 - 同时用户正在等待。

那么,为什么不直接将这两个字段与JavaScript匹配? 如果您在服务器上使用特定的正则表达式进行验证检查,则可以让服务器放置该正则表达式&#34;模式&#34;在HTML字段中 - (不需要JavaScrpt)。然后,onkeyup事件你可以简单地执行以下操作:

form.field2.onkeyup = function()
{
    if (form.field1.value !== form.field2.value)
    {
      /* some code to highlight the 2 fields,
         or show some message, or speech bubble */
      return;
    }
}

form.field1.onkeyup = form.field2.onkeyup;