2016-12-27 3 views
0

私はいくつかの同様の質問を見つけました。しかし、私はまだこれを修正することに問題があります。パスワード確認の確認に問題があります。パスワード入力に何かを書き込んだ後、同じパスワードを自分のcpassword入力に書き込むと、cpasswordが検証されます。しかし、パスワードから手紙を削除しても、cpasswordはそれが正しいと考えています。パスワードjqueryコードの確認に問題がある

これは私の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>"; 
    } 
} 

あなたはその機能を実行するために私を助けてくださいだろう1秒ごとにパスワードを変更してもcpasswordを検証するために何か他のことをしますか?

ありがとうございました!

+0

なぜAJAXコールで検証していますか?あなたは普通のJavaScriptでそれを行うことができます。なぜなら、あなたはほとんどのブラウザでAJAXリクエストを取り除くことができるからです。 – DevNiels

+0

パスワードチェックはPHPで行う必要がありますか、それともjavascript自体で行うことができますか? – GraveyardQueen

+0

それは必須ではありません、私は例を見たので、私はちょうどそのようにしました、そして、私はjscriptをあまり良くしていません。どのように私はプレーンjsでそれを検証できますか? –

答えて

1

は、しかし、同じことが

// 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(''); 
    } 

}); 
} 
+0

私はそれを試してみましょう。 –

+0

入力にchangeイベントを使用すると、より良い効果が得られます。親フォームで「submit」機能を使用することもできます。@DiegoRios – DevNiels

+0

@Rahulは機能しました。ありがとう! –

0

キー押下イベントでパスワードを確認するためのバインド機能。あなたが唯一のcpasswordフィールドのクリックイベントに検証を適用している

2

単にそれのための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 
    } 
    }); 
}); 
+0

解決に感謝します!しかし、私はアヤックスコールに固執すると思う。それは時間の無駄かもしれないが、それはhahahaを働いていることを知っている。とにかく、ありがとう! –

関連する問題