这是一个总的noob问题。抱歉。我正在使用jQuery和ajax与php后端来检查用户名密钥的可用性。我有我的形式。javascript/jQuery setTimeout和clearTimeout不起作用
Username <input id="uName" type="text" maxlength="20" name="username" /><br />
<span id="uNMessage"> </span>
,这在我的剧本
function unchk(){
$('#uName').keyup(function(){
var ab = $(this);
if(ab.val().length > 4){
$.ajax({url: "/php/username-check.php",type:'post',data:{username:$(this).val()},
success: function(result){
if(result == 0){
ab.css("outline-color","red");
untmr('Username Already Taken');
}
else if(result == 1){
ab.css("outline-color","#42c43b");
$('#uNMessage').html(' ');
}
}
});
}
else{
$(this).css("outline-color","red");
}
});
}//END FUNCTION UNCHK
function untmr(msg){
clearTimeout(unto);
unto = setTimeout(unmsg(msg),1500);
}
function unmsg(msg){
$('#uNMessage').html(msg);
}
$(document).ready(function(){
unchk();
var unto;
});
当我宣布中untmr()
变量unto
它没有耽误unmsg()
执行,当我改成了全球性的,它完全停止执行。嗯。
周围的setTimeout在JavaScript中使用引号:对= setTimeout的( “unmsg(MSG)”,1500); – hackartist 2012-02-19 02:21:43
@hackartist:将一个字符串传递给'setTimeout'是[不推荐](https://developer.mozilla.org/en/DOM/window.setTimeout#section_2)。 – josh3736 2012-02-19 04:27:56