我有一個文本區域,每當用戶點擊一個鍵或在文本區域內寫入時,該文本區域就會將數據保存在我的數據庫中。我的問題是,當我想在<p>
中顯示成功消息(如「已保存」)時,每次有人點擊某個鍵時都會重複自己,我希望它在下一次但僅重複顯示相同的消息。Keyup一次顯示成功消息
如果可能的話可以在10秒後刪除成功的「保存」消息。
HTML:
<div class="form-group">
<label for="comment">Kommentar:</label>
<textarea class="form-control" rows="5" id="comment" name="comment"></textarea>
<p name="message" id="message"></p>
的jQuery:
$("#comment").keyup(function(){
var isTyping = $('#comment').val();
var data = 'result=' + isTyping;
$.ajax({
type: 'POST',
url: "commentsave.php",
data: data,
cache: false,
success: function(html){
$('#message').append('Saved');
}
});
});
PHP:
$name = $_POST['result'];
echo $name;
非常感謝你,不需要你爲我的代碼,但只是引導我:)
除了你的問題之外,這種方法的各種擔憂。這可能會頻繁發生。你可能想要消除這個邏輯,所以你不會爲每個*鍵開火。另外如果關鍵是像轉變?或另一個沒有改變數值的鍵(箭頭鍵常見)?有一個「輸入」事件忽略了這些。其次,如果我在那裏粘貼什麼東西?這是一個異常值,但是你的邏輯無法處理。 – Taplar
這是太多的AJAX請求。將AJAX請求延遲一秒或兩秒,如果用戶決定不再輸入,則發送AJAX請求。 [回答這個問題](https://stackoverflow.com/questions/1909441/how-to-delay-the-keyup-handler-until-the-user-stops-typing)。 – Spectarion
我同意你們兩個,還是一個學習者,現在我學到了一些新東西。如果信息被保存或者沒有保存,我會在幾秒鐘內添加一個延遲幾秒鐘,Alive死亡的答案會顯示,如果保存或不保存,我會在幾秒鐘後刪除「保存」的消息。我只是在ajax請求正確之前設置一個延遲。謝謝你們兩位 – Asim