フォームに次の入力があります。
<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のパスワードの確認が期待どおりに再度実行されます.....これは正しいです
これで、パスワードが一致せず、チェックボックスをクリックしてパスワードを表示してから修正した場合、パスワードの確認はぼかし時に再度実行されません。
誰かがこれを引き起こす可能性があるものを見ることができますか?