但keyup是为密码字段中键入的每个字符触发...但是要求是在输入密码字段后应调用ajax并显示结果...是否有替代密钥?
现在正在为每个输入的字符输入错误的密码"在输入正确的密码后,它将登录,...但我想在用户完全输入密码时显示错误密码(如果密码错误)
<script type="text/javascript">
$(document).ready(function() {
$("#upwd").change(function()
//$('#upwd').on('input', function()
//$('#upwd').keyup(_.debounce(doSomething , 500), function() {
var upwd = $("#upwd").val();
var uemail = $("#uemail").val();
var msgbox = $("#status");
//alert(uemail);
//alert(upwd);
//setTimeout(function() {
//if($('#upwd').val() == upwd){
$.ajax({
type: "POST",
url: "checkl_login.php",
data: "uemail="+ uemail,
success: function(msg){
$("#status").ajaxComplete(function(event, request){
if(msg == 'OK') {
msgbox.html(msg);
//return false;
} else {
msgbox.html(msg);
}
});
}
});
return false;
});
});
</script>
在span ......中的状态ID中显示错误。
checkl_login.php代码也是完美的.....
答案 0 :(得分:3)
尝试使用.focusout()
事件,如下所示: -
$("#upwd").on("focusout",function(){
//..your code..
});
除了这些事件之外,还可以使用登录按钮并在点击按钮时检查验证。
答案 1 :(得分:1)
使用change
事件代替keyup
。
答案 2 :(得分:0)
恕我直言,这是更好的:
即。您可以尝试以下内容:
$(document).ready( function() {
var ajax_h;
var delayMilliseconds = 1000; // i.e. = 1 second
var timeoutId;
function checkAuth() {
if (ajax_h) {
ajax_h.abort();
}
ajax_h = $.ajax(
// PUT YOUR CODE HERE
);
}
$("#upwd").on('keyup paste', function () {
if (timeoutId) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(checkAuth, delayMilliseconds);
});
});