实现移动端的即时搜索的时候监听input事件掉接口查询,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现输入一个字母就触发一次事件,导致频繁调用接口的问题。

如果是输入纯英文没什么问题,但是输入中文,比如搜个“我,按常理来说返回的第一个结果应该是“我”这个关键字返回的搜索结果,但是并不是,而是返回“wo”的搜索结果。
原因:input事件不知道使用的是中文输入法,文字还没有填充到文本框中,会触发input事件,然后就修改filterText
解决方法:借助 compositionstart 和 compositionend 两个事件来作为一个开关,同时借助状态变量,只在文字输入结束之后再触发input事件。

/**
* @param flag: 用于标记是否是非直接的文字输入
*/
var flag = false;
$('#id').on({'compositionstart': function() {flag = true;},'compositionend': function() {flag = false;if(!flag) {//do something...(接口查询)doSomethingFunction();}},'input propertychange': function() {if(!flag) {//do something...(接口查询)doSomethingFunction();}}
});

compositionstart:输入法编辑器开始新的输入合成时会触发 compositionstart 事件。例如,当用户使用拼音输入法开始输入汉字时,这个事件就会被触发。
compositionend:当文本段落的组成完成或取消时,compositionend 事件将被触发 (具有特殊字符的触发,需要一系列键和其他输入,如语音识别或移动中的字词建议)。

(1)利用compositionstart和compositionend可以知道中文输入什么时候开始和结束。
(2)任何输入都会触发input,而输入中文的时候才触发compositionstart和compositionend,所以通过用一个标记flag来避免中文输入过程中触发过滤。

【h5】ios自带输入法输入中文时多次触发input事件的处理相关推荐

  1. 即时搜索:对于ios自带输入法输入中文时多次触发input事件的处理

    实现移动端的即时搜索的最佳方案,一定是使用input propertychange事件了,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现多次触发input事件的情况,一开始可能由 ...

  2. 解决input中输入中文过程中会触发input事件的问题

    问题描述: 监听文本输入框的input事件,在拼写汉字时会触发input事件,如下图: 需求: 选词完成后触发input事件,只触发一次. 解决办法: 通过查阅资料得知在输入中文(包括语音识别时)会先 ...

  3. iOS备忘录之如何去掉苹果自带输入法输入英文时的“空格”

    背景:苹果自带键盘输入英文时,中间会有"空格". 解决方法:"空格"的字符为"8198". NSString *checker = [NSS ...

  4. vue中解决模糊搜索输入中文时--未输入完成时触发input事件

    在给输入框绑定input或keydown事件时 预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件 可以用到compositionstart,compositionend. 主流 ...

  5. 搜狗输入法在idea打不了汉字_搜狗输入法在idea打不了汉字_好烦啊,IDEA输入中文时输入法候选词框不跟随光标......

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  6. 搜狗输入法在idea打不了汉字_好烦啊,IDEA输入中文时输入法候选词框不跟随光标...

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  7. 好烦啊,IDEA输入中文时输入法候选词框不跟随光标

    PS:虽然写这篇文章会让人感觉很无聊,但是既然费心思去做了,写下来也不为过O(∩_∩)O~ 起因: 前几日在下从Eclipse搬迁到了IDEA,但是输入中文代码注释时,发现输入法的候选词框一直在右下角 ...

  8. 搜狗输入法在idea打不了汉字_IDEA下搜狗输入法输入中文时卡着不动的参考解决方法...

    在IntelliJ IDEA工具的java编辑窗口,给代码增加注释时发现,输入中文时,搜狗输入法界面不动,一直卡着,如图: 我想输入"根据"两个字,但搜狗输入法界面一直卡着不刷新, ...

  9. 利用autohotkey实现一键切换输入法的“中文时使用英文标点“功能

    作为一个程序员,尤其是干什么都离不开vim的老码农,输入法的"中文时使用英文标点"功能是必不可少的.它可以让你在编写代码时避免了非常多不必要的中英文切换操作.不过这个功能在编写文档 ...

最新文章

  1. 发布开源框架到CocoaPods入坑指南
  2. 学习作用域中的“名词”
  3. spark算子_Spark常用算子
  4. 田渊栋:博士五年总结
  5. 信息学奥赛一本通 1160:倒序数
  6. mybatis中SqlSession一定要关闭
  7. php接收base64图片并保存
  8. 两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
  9. 对着IDEA 配置方式
  10. file_get_contents() 报错failed to open stream: HTTP request failed! HTTP/1.1 505 HTTP Version Not Supp
  11. 解决虚拟机突然断网问题
  12. m2e-wtp的作用
  13. Qt输出4位大字十六进制,不足4位左边补0
  14. ucos通信邮箱的理解
  15. 1-2BP神经网络--Keras实现
  16. UltraEdit正则表达式使用(Regular Expressions in UltraEdit)
  17. 如何用Keynote绘制app原型图
  18. 前端基础——CSS 选择器、网页美化
  19. 安卓之数据库(SQLite)
  20. 领扣(LeetCode)整数反转

热门文章

  1. 怀旧服第二阶段术士毕业装备
  2. 【Linux operation 38】解决Linux 端口被占用
  3. 用python递归求兔子总量_在Python中优化递归Padovan(即Fibonacci和垂死的兔子)算法...
  4. 蓝桥杯2020年第十一届JavaB组真题题目+解析+代码+答案:7.八次求和
  5. 好用的Typecho在线音乐播放插件-APlayer
  6. 哔哩哔哩原创视频竟能被他人重投!视频审核人员究竟在做啥?
  7. win7一直显示正在关机_如何定时关机
  8. iPhone 6大陆预订量突破2000万部
  9. java自制SQL假数据生成器
  10. go入门笔记二(数据类型及转换、指针)