我有一个文本框。我想调用ajax回调函数,每个键盘都有2秒的延迟。
如何实现这个?
答案 0 :(得分:1)
最后一次按键或每次按键后2秒?
<input type="text" id="txtBox" value="" width="200px"/>
<input type="text" id="txt" width="200px"/>
<script type="text/javascript">
$(document).ready(function(){
$("#txtBox").keyup(function(){
setTimeout(function(){
$("#txt").val($("#txtBox").val());//Here call ajax code
},2000);
});
});
</script>
答案 1 :(得分:0)
使用jQuery,但可以随意替换自己选择的JS库:
var currentTimer = null;
input.bind('keyup', function () {
if (!currentTimer) {
currentTimer = true;
setTimeout(function() {
if (currentTimer) {
currentTimer = null;
// Do ajax call here
}
}, 2000);
}
});
答案 2 :(得分:0)
我在这里使用jQuery,但你应该明白这一点:
function callAjax() {
timer = null;
// handle all your ajax here
}
var timer = null;
$('input').keyup(function () {
// this will prevent you from reseting the timer if another key is pressed
if (timer === null) {
timer = setTimeout(callAjax, 2000);
}
});
答案 3 :(得分:0)
如果你正在使用jQuery,你可以使用优秀的delayedObserver插件。