键入输入时防止发布
我有一个输入字段作为filter。 在每个keyup中,他调用一个函数来发布input.val()以在表中显示结果,这很好。 但如果我输入一个名称“stackoverflow”,他将发布13次。 我希望如果他在3秒内没有输入他发布的内容。
我认为有一个函数(不是默认函数)。 而且我不想自动完成。
HTML:
JavaScript的:
$(document).ready(function(){ $("#filter").keyup(function(){ console.log('POST'); }); });
的jsfiddle
我不想延迟,因为这只会“延迟”它。
查看jQuery throttle / debounce插件
它完全符合你的要求
$('input').keyup($.debounce(3000, function() { /* Post comes here */ }));
您可以使用本机Javascript函数clearTimeout和setTimeout来完成此任务。
$(document).ready(function(){ var filterTimeout = null; $("#filter").keyup(function(){ if (filterTimeout != null) window.clearTimeout(filterTimeout); filterTimeout = window.setTimeout(function() { console.log('POST'); }, 3000); }); });