1

フォームに次の入力があります。

<input class="password" type="password" title="Your Password" name="password" size="30" autocomplete="off" value="" >

<input class="confirmpass" type="password" title="Confirm Password" name="pass_confirm" size="30" autocomplete="off" value="" >
  <div class="jresults" align="left" style="display:none;" id="confirmdata"></div>

  <input class="showpassword" type="checkbox" title="Show Passwords">

これはパスワードの表示機能です。

 //Show password function
$(".showpassword").click(function()
    {
    var change = $(this).is(":checked") ? "text" : "password";
    var password = $("input.password"); 
    var showpass = $("<input type='" + change + "' />")
                .attr("id", password.attr("id"))
                .attr("title", password.attr("title"))
                .attr("name", password.attr("name"))
                .attr("size", password.attr("size"))
                .attr('class', password.attr('class'))
                .val(password.val())
                .insertBefore(password);
            password.remove();
            password = showpass;
    var confirmpass = $("input.confirmpass");
    var showconfirm = $("<input type='" + change + "' />")
                .attr("id", confirmpass.attr("id"))
                .attr("title", confirmpass.attr("title"))
                .attr("name", confirmpass.attr("name"))
                .attr("size", confirmpass.attr("size"))
                .attr('class',confirmpass.attr('class'))
                .val(confirmpass.val())
                .insertBefore(confirmpass);
            confirmpass.remove();
            confirmpass = showconfirm;     
    });   

これは、パスワード一致の確認機能です。

//match passwords entered
$('.confirmpass').blur(function()
    {
    var Pass = $('.password').val();
    var cPass = $('.confirmpass').val();
    $('#confirmdata').css("display","none");
    if(cPass.length>5)
      {
        if (Pass != cPass)
            {
                $('#confirmdata').css("display","block");
                $('#confirmdata').css("color","#ff0000");
                $('#confirmdata').html("No Match");
                $("input.confirmpass").focus();
            return; 
            }
        $('#confirmdata').css("display","block");
        $('#confirmdata').css("color","#00BB00");
        $('#confirmdata').html("Matched");
     }
    });

問題:

パスワードが一致せず、修正すると、blurのパスワードの確認が期待どおりに再度実行されます.....これは正しいです

これで、パスワードが一致せず、チェックボックスをクリックしてパスワードを表示してから修正した場合、パスワードの確認はぼかし時に再度実行されません。

誰かがこれを引き起こす可能性があるものを見ることができますか?

4

1 に答える 1

3

チェックボックスをクリックすると、動的コンテンツがページに挿入されるため、その後はぼかしが機能しなくなります。関数宣言を置き換えます

$('.confirmpass').blur(function()

$(document).on('blur', '.confirmpass', function() 
于 2013-01-07T17:38:09.640 に答える