我想在编辑输入控件中更改数据时触发AJAX调用。我意识到我可以通过onChange事件来做到这一点。但是,如果用户输入:123我不想激活AJAX 3次。
相反,我想等待“设置期”,然后关闭通话。每次控制改变时,设置周期都会重置。所以这个想法就像我快速输入123一样,一段时间过去了(解决)并且我进行了AJAX调用。
有没有人对如何使用jQuery实现这一点有任何建议?我可以在jQuery中使用任何构造来执行此操作吗?
答案 0 :(得分:2)
您需要使用超时限制事件
$('input').on('keyup', function() {
var self = this;
clearTimeout( $(this).data('timer') );
$(this).data('timer',
setTimeout(function() {
$.ajax({
url : 'someurl.php',
data : self.value
});
}, 500)
)
})
答案 1 :(得分:-1)
简单的方法是在更改事件上使用setTimeout / clearTimeout:
var timeout = null;
$('input').bind('keyup blur', function() {
if (timeout !== null) clearTimeout(timeout);
timeout = setTimeout(function() {
// Make your ajax request here
}, 300);
});
在发出ajax请求之前,将300更改为您要等待的毫秒数。