【发布时间】:2014-05-29 11:34:22
【问题描述】:
我有一个简单的文本区域,用户可以在其中输入文本,然后一旦他们按下返回键,这些文本就会通过 AJAX 传递到 URL。我的问题是,在第一次按下返回键时,文本数据发送一次,第二次发送两次,依此类推,每次都增加我的。
经过一番阅读,我意识到如果我使用的是表单提交,我必须解除绑定以防止这种情况发生。我尝试添加一个值标志来防止多个事件,但只能让它触发一次。
我的代码如下。任何有关如何防止递增事件的指导将不胜感激 - 因为您可能会告诉我对 Javascript 的信心/知识并不是最好的。谢谢!
$(function() {
$("#myTextarea").keypress(function(e) {
// If the user hits the return key
if(e.which == 13) {
e.preventDefault();
$.ajax({
success: function(){
var modal = $('#myModal'), modalBody = $('#myModal .modal-body');
modal
// Load the webpage result within the modal Body
.on('show.bs.modal', function () {
modalBody.load('http://www.things.co.uk/things' + document.getElementById('myTextArea').value)
})
.modal();
// Hide the modal after five seconds
myModalTimeout = setTimeout(function() {
$('#myModal').modal('hide');
}, 5000);
}
});
}
});
});
编辑:我通过http://www.andismith.com/blog/2011/11/on-and-off/ 为我的模态事件使用 one() 解决了这个问题。谢谢大家。
【问题讨论】:
标签: javascript jquery ajax