我正在为输入字段构建一个自动检查用户名可用性功能,我遇到了这个非常奇怪的事情。
当我将自动检查功能作为$(document).ready()
功能时,
$(document).ready(function(){
//JohnyP keydowntimer
var timer = null;
$('#username').keydown(function(){
clearTimeout(timer);
var usercheck = $(this).val();
timer = setTimeout(function () {
checkUserName(usercheck);}, 1000);
});
//http://www.itechroom.com
function checkUserName(usercheck){
$('#usercheck').html('<img src="images/ajax-loader.gif" />');
$.post("checkuser.php", {username: usercheck} , function(data){
if (data != '' || data != undefined || data != null){
$('#usercheck').html(data);
}
});
}
})
无论我将它放在哪里(之前</head>
或之后<body>
),它都无法工作。
但是,当我将函数作为 Body onload 事件 ( <body onLoad="loadthis()">
)执行时
function loadthis(){
//JohnyP keydowntimer
var timer = null;
$('#username').keydown(function(){
clearTimeout(timer);
var usercheck = $(this).val();
timer = setTimeout(function () {
checkUserName(usercheck);}, 1000);
});
//http://www.itechroom.com
function checkUserName(usercheck){
$('#usercheck').html('<img src="images/ajax-loader.gif" />');
$.post("checkuser.php", {username: usercheck} , function(data){
if (data != '' || data != undefined || data != null){
$('#usercheck').html(data);
}
});
}
}
它有效,但每次自动检查时,都会出现以前的结果。
例如。输入名称'Arch',消息应该是“这个用户名已经存在”,但它是“这个用户名可用”,下一个结果将是“这个用户名已经存在”不管任何事情。它始终是先前的结果。
所以我尝试将 check_user_name 函数作为onblur
事件执行,一切正常,checkuser.php 没有任何问题。
谁能向我解释为什么会发生这种情况?我是 jQuery 的新手.. 非常感谢!!!