【【h5】ios自带输入法输入中文时多次触发input事件的处理】实现移动端的即时搜索的时候监听input事件掉接口查询 , 但是在ios设备上遇到了问题 , 使用ios自带输入法输入汉字时 , 会出现输入一个字母就触发一次事件 , 导致频繁调用接口的问题 。
如果是输入纯英文没什么问题 , 但是输入中文 , 比如搜个“我 , 按常理来说返回的第一个结果应该是“我”这个关键字返回的搜索结果 , 但是并不是 , 而是返回“wo”的搜索结果 。
原因:input事件不知道使用的是中文输入法 , 文字还没有填充到文本框中 , 会触发input事件 , 然后就修改
解决方法:借助和两个事件来作为一个开关 , 同时借助状态变量 , 只在文字输入结束之后再触发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();}}});
:输入法编辑器开始新的输入合成时会触发事件 。例如 , 当用户使用拼音输入法开始输入汉字时 , 这个事件就会被触发 。
:当文本段落的组成完成或取消时 , 事件将被触发 (具有特殊字符的触发 , 需要一系列键和其他输入 , 如语音识别或移动中的字词建议) 。
(1)利用和可以知道中文输入什么时候开始和结束 。
(2)任何输入都会触发input , 而输入中文的时候才触发和 , 所以通过用一个标记flag来避免中文输入过程中触发过滤 。
- 古代学校在夏季放假主要是为了什么 古代学校夏季放的假叫什么假
- 二十年的发财树,室内养的木本植物?
- 中国古代竟然也有野生动物保护法,从周朝就已经开始了
- 郑成功北伐过程简介郑成功北伐的影响是什么
- iOS输入法—基于XCTest框架的异步测试
- 郑渝高铁有多牛|与大山斗出“亚洲第一隧”!川藏铁路用它的技术征服世界之巅 中国之最川藏铁路
- 关于ios下中文输入法 连续输入空格问题
- 萌学园第三季是什么电视剧
- 什么地方做肠粉赚钱
- 实体店哪里有弹力带卖