這是一個總的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