扫码关注官方订阅号
比如一个input输入框,在用户连续输入完之后才触发返回当前输入值,输入过程中不触发。
欢迎选择我的课程,让我们一起见证您的进步~~
如果用户输入的内容是是固定长度的文本,比如说手机号码、身份证号码等等,则用keyup()事件监听input中内容length的变化,一旦达到临界值,就表示输入完成,自动提交
<input type='text' id='test'> <script type="text/javascript"> var obj=document.getElementById("test"); obj.onkeyup=function(){ if(obj.value.length>=XX){ //code 向后台提交 } } </script>
监听focus事件,当失去focus时提交(这是我最常用的)
如一楼,做延时处理,你的条件是用户连续输入,当监听到用户在2s之内没有输入时,提交
如果还有更好的方案,请立即通知我!
本身没有这样的事件吧,你可以考虑做个延时处理,比如延时1s,每次有输入重置计时器
通过keyUp事件和时间戳来判断吧
监听Enter事件或focus事件
可以用一个debounce方法,做空闲时间的间隔控制,是空闲时间必须大于或等于一定值(wait)的时候,才会执行调用方法。用法参考var lazyLayout = _.debounce(calculateLayout, 300);$(window).resize(lazyLayout);
关键词:函数节流
两种方式,判断用户输入停顿多长时间后才触发;用户每次按下键盘时带入当前时间与方法体内已获取的时间做比对,超过某一间隔及触发,如150毫秒。 这两种都是在一个定时器循环里做
//失去焦点时触发 $("input").blur(function(){ $("input").css("background-color","#D6D6FF"); });
使用间隔时间 和 离开焦点
keyup的时候,在回调函数内用setTimeout生成一个事件队列,你的返回在这setTimeout函数中执行,如果用户连续输入时在keyup监听时候清除掉该队列。var queue;
input.on('keyup', function (e) {
clearTimeout(queue); queue = setTimeout(function () {//这里返回}, 1000);
});
输入过程我认为就是一段时间内没有停顿。。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
三种方案:
如果用户输入的内容是是固定长度的文本,比如说手机号码、身份证号码等等,则用keyup()事件监听input中内容length的变化,一旦达到临界值,就表示输入完成,自动提交
监听focus事件,当失去focus时提交(这是我最常用的)
如一楼,做延时处理,你的条件是用户连续输入,当监听到用户在2s之内没有输入时,提交
如果还有更好的方案,请立即通知我!
本身没有这样的事件吧,你可以考虑做个延时处理,比如延时1s,每次有输入重置计时器
通过keyUp事件和时间戳来判断吧
监听Enter事件或focus事件
可以用一个debounce方法,做空闲时间的间隔控制,是空闲时间必须大于或等于一定值(wait)的时候,才会执行调用方法。
用法参考
var lazyLayout = _.debounce(calculateLayout, 300);
$(window).resize(lazyLayout);
关键词:函数节流
两种方式,判断用户输入停顿多长时间后才触发;用户每次按下键盘时带入当前时间与方法体内已获取的时间做比对,超过某一间隔及触发,如150毫秒。
这两种都是在一个定时器循环里做
使用间隔时间 和 离开焦点
keyup的时候,在回调函数内用setTimeout生成一个事件队列,你的返回在这setTimeout函数中执行,如果用户连续输入时在keyup监听时候清除掉该队列。
var queue;
input.on('keyup', function (e) {
});
输入过程我认为就是一段时间内没有停顿。。