中文输入法导致html input的onkeyup事件无法被触发,解决方法

案例:验证码的input框绑定了一个keyup事件,但是偶尔有客户投诉说登录的时候老是提示验证码无法通过验证。

原因:一开始以为是客户的浏览器没有启用cookie。后来了解到客户使用各种浏览器都有同样的问题,才发现是客户使用了五笔输入法输入验证码,导致keyup事件无法被触发。本地测试可以重现:用搜狗输入法输入英文字母然后回车确定输入。

解决:弃用监听keyup事件,改为监听另外两个事件:input(非IE)和propertychange(IE)


代码如下:

		//$("#captcha").on("keyup", checkCaptchaInput);
		//"keyup"如果使用输入法会失效,改用input(非IE)和propertychange(IE)
		var bind_name = 'input';
		if (navigator.userAgent.indexOf("MSIE") != -1) {
			bind_name = 'propertychange';
		}
		$('#captcha').bind(bind_name, checkCaptchaInput);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值