これは問題の合計です。ごめんなさい。私は、キーアップでユーザー名の可用性をチェックするために、PHPバックエンドでjQueryとajaxを使用しています。私は私の形でこれを持っています。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がたに( "unmsg(msg)"、1500); – hackartist
@hackartist: 'setTimeout'に文字列を渡すことはお勧めできません(https://developer.mozilla.org/en/DOM/window.setTimeout#section_2)。 – josh3736