当前位置:编程学习 > JS >>

js 如何控制文本域输入内容在一定间隔时间段才触发事件查询相关数据

文本域自身设置每按一键就触发一次js 函数进行查询相关数据,现在要控制按键在一定时间段内(大于1秒间隔时间)才触发一次js 函数,比如现在需要输入20110109001.而输入 200101每按一键时间都在1秒以内,而输入09001每次按键时间亦在1秒钟以内.而输入 200101后隔了一秒多才输入09001,所以在输入20110109001整个过程应该是输入200101后查询了一次数据直到输入完20110109001后又触发了js查询了一次数据,一共触发了两次,而不是每键一键就触发一次查询数据,目的控制不要每次都去查询数据.
追问:不可以,必须按键就要实现模糊查询功能,但连续按就没有必须去查询,等停下来超过1秒后才进行查询
答案:给你一段js代码参考,原理就是创建一个时间控件,按下按键就停止,抬起按键就计时,在配合按键检测(排除ctrl、shift之类的按键),就差不多咯:
<script>
var flag = 0;
var t;
function openFlag () {
	t = setTimeout(function(){flag = 1; dosomething();}, 1000);
}
function closeFlag() {
	clearTimeout(t);
	flag = 0;
}
function dosomething() {
	if (flag) {
		// do something
		alert('aaa');
	}
}
</script>

<input type="text"  onkeyup="openFlag()" onkeydown="closeFlag()" />
其他:为了避免多次查询可以规定输入的字符的长度,20110109001这个字符有11位,那就可以规定输入11位才查询啊,或者用blur方法,都输入完了,离开焦点才查询。 可以用onpropertychange,  这个函数是输入框每键一键就触发,可以在里面判断一下 输入的位数,或规定值,,再提交后台查询。。 

上一个:求 js验证文本框输入重复数据...
下一个:我发现了,ThinkPHP中css中的图片无法响应js 其中php文件,css文件,js文件都是独立的, 怎么解决啊?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,