Возникли проблемы с подтверждением пароля jquery code

Я нашел несколько похожих вопросов. Однако, я все еще не могу исправить это. У меня проблемы с подтверждением пароля. Если я что-то напишу в поле ввода пароля, а затем напишу тот же пароль в поле ввода моего пароля, это подтвердит правильность пароля. Однако, если я удаляю письмо из моего пароля, cpassword все еще думает, что он понял это правильно.

Это мой cpassword-check.js

// Validate confirm password while typing
$(document).ready(function() {    
    $('#cpassword').click(function(){  
        var cpassword = $('#cpassword').val(); 
        if (cpassword.length > 0) {  
            $("#resultcpass").html('<i class="fa fa-circle-o-notch fa-spin loading-icon"></i>');
            $.ajax({
                type : 'POST',
                url  : 'cpassword-check.php',
                data : {
                    cpassword: $('#cpassword').val(), 
                    password: $('#password').val()
                }, 
                success : function(data) {
                    $("#resultcpass").html(data);
                }
            });
            return false;

        } else {
            $("#resultcpass").html('');
        }
    });
});

И вот где он проверяет это (cpassword-check.php):

/*$host="localhost";
$user="root";
$pass="";
$dbname="lr";

$dbcon = new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass);*/

if($_POST['cpassword']) {
    $cpassword = strip_tags($_POST['cpassword']);
    $password = strip_tags($_POST['password']);

    if ( $cpassword != $password) {
        echo "<i class='fa fa-circle user-validation-w pull-right' aria-hidden='true'></i><span class='availability pull-right'> Deben coincidir</span>";
    } else  {
        echo "<i class='fa fa-check user-validation-ok pull-right' aria-hidden='true'></i><span class='availability pull-right'></span>";
    }
}

Не могли бы вы помочь мне выполнять эту функцию каждую секунду или, может быть, сделать что-то еще для проверки пароля, даже если пароль изменился?

Спасибо!

3 ответа

Решение

Вы применили проверку только по событию клика cpassword поле, однако то же самое должно применяться к обоим

// Validate confirm password while typing

$(document).ready(function()
{    
 $('#cpassword').click(function(){
  validatePass();
});

 $('#password').click(function(){
  validatePass();
});

function validate(){
   var cpassword = $('#cpassword').val(); 

    if (cpassword.length > 0)
  {  
    $("#resultcpass").html('<i class="fa fa-circle-o-notch fa-spin loading-icon"></i>');


          /*$.post("email-check.php", $("#reg-form").serialize())
           .done(function(data){
            $("#resultmail").html(data);
           });*/

 $.ajax({

type : 'POST',
url  : 'cpassword-check.php',
data : {

    cpassword: $('#cpassword').val(), 
    password: $('#password').val()

    }, 

success : function(data)
    {
          $("#resultcpass").html(data);
       }
});
return false;

  }
  else
  {
  $("#resultcpass").html('');
  }

 });
}

Просто используйте Jquery для этого.

$(document).ready(function() {
  $("#register").on('click', function() {
    password = $.trim($("#password").val());
    repassword = $.trim($("#repassword").val());
    var msg = "";
    if (password != repassword) {
      msg += " <p>Password did not match</p>";
    }
    if (msg == "") {
      $("#register_form").submit();
    } else {
      $("#msg").html(msg); // show error message
    }
  });
});

Функция привязки для проверки пароля на событие нажатия клавиши.

Другие вопросы по тегам