阻止中文输入时触发input事件

阻止中文输入时触发input事件做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑——当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:$(document).on(‘input’,’input’,function(){console.log(‘限制…

大家好,又见面了,我是你们的朋友全栈君。

做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑 —— 当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:

$(document).on('input','input',function(){ 
   
  console.log('限制最大输入字符(截取)')
})

这个问题,可以声明一个inputFlag,使用compositionstart,compositionend配合解决,代码如下:

var inputFlag = true
$(document).on('compositionstart', 'input',function () { 
   
  inputFlag = true
}).on('compositionend','input',function () { 
   
  inputFlag = false
}).on('input','input', function () { 
   
  //定时器内才会生效 注意:定时器内this指向已发生改变
  setTimeout(function(){ 
   
    if (inputFlag == false) return   // 中文输入过程中不截断
      console.log('限制最大输入字符(截取)')
    })
  })
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java获取窗口_获取窗口句柄[通俗易懂]

    java获取窗口_获取窗口句柄[通俗易懂]1、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。#include#include#include#includeintmain(intargc,char*argv[]){//根据窗口名获取QQ游戏登录窗口句柄HWNDhq=FindWindow(NULL,”QQ2012″);//得到QQ窗口…

    2022年7月21日
    141
  • 10款滑动门代码_jquery 滑动门_js滑动门_tab滑动门_jquery 选项卡_js选项卡_tab选项卡效果(三)

    10款滑动门代码_jquery 滑动门_js滑动门_tab滑动门_jquery 选项卡_js选项卡_tab选项卡效果(三)jquerytab选项卡插件滑动选项卡淡隐淡现选项卡jquerytab选项卡插件轻量级tab选项卡插件支持鼠标滑过、点击、自动切换、数据回调等功能jquery选项卡插件jquerytab选项卡支持垂直选项卡滚动、水平选项卡滚动、自动选项卡切换等。jquerytab选项卡ajax选项卡静态选项卡鼠标点击选项卡鼠标滑过选项卡jquery图片延迟加载插件制作tab选项卡图片异步加载…

    2025年6月5日
    0
  • Python sum() TypeError: ‘int‘ object is not callable xxxxxxxxx XXXXXXXXXX

    Python sum() TypeError: ‘int‘ object is not callable xxxxxxxxx XXXXXXXXXXPythonsum()TypeError:’int’objectisnotcallablexxxxxxxxxXXXXXXXXXX代码中定义了sum变量,导致sum()方法异常。

    2022年8月22日
    3
  • VSCode设置中文语言显示

    VSCode设置中文语言显示 Vscode是一款开源的跨平台编辑器。默认情况下,vscode使用的语言为英文(us),如何将其显示语言修改成中文了?1)打开vscode工具;2)使用快捷键组合【Ctrl+Shift+p】,在搜索框中输入“configuredisplaylanguage”,点击确定后;3)修改locale.json文件下的属性“locale”为“zh-CN”;4)重启vscode工具;…

    2022年5月7日
    49
  • SQL聚合函数功能和用法解析

    SQL聚合函数功能和用法解析第一部分:介绍SUM和AVG  我们知道数据库通常包含大量数据,要从海量的数据中找到我们需要的某条记录无异于大海捞针,不过通过SQL语言我们可以找到很多方法从数据库中提取我们要查找的特定数据,就是通过这些方法我们才能找到“列举出七八两个月中购买了西伯利亚羊毛的所有顾客的姓名”这类问题的答案。  很多时候,我们还希望能够通过对数据进行分析,总结出规律和趋势或生成高水平的报表。例如,对于采购经理来说,…

    2022年6月21日
    27
  • APK签名原理

    APK签名原理网上已有多篇分析签名的类似文章,但是都有一个共同的问题,就是概念混乱,混乱的一塌糊涂。在了解APK签名原理之前,首先澄清几个概念:消息摘要-MessageDigest简称摘要,请看英文翻译,是摘要,不是签名,网上几乎所有android签名分析的文章都对这两个概念乱用摘要的链接http://en.wikipedia.org/wiki/Message_digest简

    2022年6月12日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号