0
當輸入鍵被按下時,我有一個將消息存入數據庫的腳本。如何在按鍵時通過aJax停止重新發送腳本?
<textarea class="comment" name="comment" id="comment" onKeyPress="return checkSubmit(event)" onKeyDown="return checkTypingStatus(event)" >Comment/Reply</textarea>
function checkSubmit(e)
{
if(e && e.keyCode === 13)
{
var sender = <?=$_REQUEST['sender'];?>;
var user_id = <?=$_SESSION['userid'];?>;
var cid = <?=$_REQUEST['cid'];?>;
var comment = $("#comment").val();
comment = encodeURIComponent(comment);
var dataString = 'sender='+ sender + '&user_id=' + user_id + '&comment=' + comment + '&cid=' + cid;
if(comment=='' || comment=='Comment%2FReply')
{
alert('Please Give some text into message box.');
}
else
{
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="images/ajax-loading.gif" align="absmiddle"> <span class="loading">Sending Message...</span>');
$.ajax({
type: "POST",
url: "ajax_comment.php",
data: dataString,
cache: false,
success: function(html){
$("p#update").append(html);
$("p#update").fadeIn("slow");
document.getElementById('comment').value='';
$("#comment").focus();
$("#flash").hide();
}
});
}
return false;
}
}
一切工作,除非用戶保持按壓輸入很長一段時間,直到進入被釋放了同樣的信息被存儲多次關鍵沒關係。
我已經嘗試了與onKeyUp事件相同的腳本。但是腳本不能按原樣運行。
這看起來更像是一個可用性問題,然後是一個編程問題。您是否考慮在請求正在處理時禁用'textarea'?這很常見,許多用戶(包括我自己)會期望 – blgt
您可以考慮使用onkeyup事件 –