我有一个文本区域,每当用户点击一个键或在文本区域内写入时,该文本区域就会将数据保存在我的数据库中。我的问题是,当我想在<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