一直按住ctrl+v,鼠标移动到不同的文本框粘贴,文本框的keyup事件失效



以下是我这边的方案:

一直按住ctrl+V不松,移动鼠标点击别的文本框,文本框的keyup事件不执行,但每次鼠标移动到别的文本框时都会失去焦点,所以keyup处理的东西可以在onblur时再处理一次

	
					$("[checktype*='num']").live("keyup blur", function(event) {
						//禁用左右移动健的keyup事件
						if(event.keyCode!=37&&event.keyCode!=39){
							var val = $(this).val();
							val = val.replace(/[^\d]/g,'');
							$(this).val(val);
						}
						
					});
				

以下是转自别处的,一些别的处理方案

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转自http://www.w3cfuns.com/article-5594407-1-1.html

需求:

做一个自动完成功能,用户再输入框里输入文本后,要能自动发ajax请求到后台去请求数据.

我之前用的是keyup事件,本来我是想用keypress(字符键)事件的,这样,那些杂七杂八的按键这个事件就捕获不到了,也不用触发,感

觉更有效率.

可惜呀,在keypress的时候字符还没有添加到文本框里呢,我就捕获不到用户输入的字符了,也不能把完整的数据传给后台.

所以,我还是用了keyup事件.

可是这个时候我们老大问我:"那如果我不是手动输入,而是粘贴文本进输入框,你的这个事件会触发吗?"

我想,那应该能吧,我就试了下,步骤如下:

1.我点击输入框,然后去复制"作业本",2.粘贴到输入框里,keyup是能捕获的.

但是....

为虾米总是还有个但是呢?

如果我直接1.不点击输入框,直接复制,再右键粘贴文本到输入框里,这个时候悲剧了,keyup捕获不了我的粘贴动作了..

在试了$("body".on("keyup keydown focus mouseup",func()});里面的几个事件后,我发现单独绑定这里面的某一个事件的时候
不能正常捕获用户直接粘贴文本内容到输入框里,当我把这几个事件全绑定上的时候发现是可以触发请求的,可是却会感觉非常非

常慢,感觉有二十秒吧,而单独用keyup绑定的时候结果一二秒就出来了.

在上面的请求里,我一堆乱炖,没有检测出来到底是哪个是能捕获到粘贴到文本框的事件,但是肯定不是keydown,我以为是

mouseup,因为去掉了它后请求捕获不到了.我把mouseup弄回来,再在一堆绑定事件里去掉focus,结果事件还是捕获不到粘贴.

坑爹呀.

难道一定要同时绑定focus,mouseup才能触发请求?

后来,星钻(w3c滴朋友)跟我说用onpropertychange看看行不?我说这个只在ie下有用,然后星钻又推荐说oninput在firefox下是可以

的,我在ff,chrome,ie9下测了,这个事件能捕获到我的粘贴...可惜啊,ie8你都不支持.
后来我在查找chrome的方法的时候发现paste事件也是能捕获用户的粘贴的,chrome,ff,ie8也都兼容.
可惜的是,paste有一个问题,paste事件执行的时候你刚刚input输入的字符还没有添加进输入框里呢,所以这个时候你想获取这个input最新的值是获不到的.

**********************************************************************************************************************************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值