家庭户号:<input type='text' name='jthh'/>
现在是想要实现我输入家庭户号ajax查一些东西,然后我用keyup
监听,但是我不想每次输入都去查,想等用户输完等待一段时间后在去查,这个要怎么实现呢?
监听blur事件,失去焦点再触发ajax动作
大体的思路是,本来是立即去做doAjax()
的,现在把它放到一个setTimeout()
的延时任务。然后,每次触发keyup的时候用clearTimeout()
取消上一个延时任务。 这样,当键盘事件连续、快速地触发的时候,是没有用的,只有当键盘输入停下,并过了至少一点时间之后,才会真正去执行ajax任务。
比如原本是:
function doAjax() {
// ajax
}
function handleKeyUp(event) {
doAjax();
}
修改为:
var timeFlag = null;
function doAjax() {
// ajax
}
function handleKeyup(event) {
clearTimeout(timeFlag);
timeFlag = setTimeout(doAjax, 1000);
}
setTimeout
比如说你的家庭号有多长,或者什么规则。判断符合这个长度和规则,然后ajax请求。简单来说就是对家庭号做一个正则验证,符合验证规则,那么ajax请求,不符合不请求。
http://www.cnblogs.com/dolphinX/p/3403821.html
函数节流。