100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > input文本框实现输入英文时自动触发事件 输入中文时要输入完成后才触发事件

input文本框实现输入英文时自动触发事件 输入中文时要输入完成后才触发事件

时间:2023-04-26 10:18:31

相关推荐

input文本框实现输入英文时自动触发事件 输入中文时要输入完成后才触发事件

需求:

英文(英文输入法): 每输入一个字母都触发一次事件;

中文(拼音输入法): 输入完成后才触发事件,不是每打一个拼音就触发

实现:

$(function(){var flag = true;$('#dev_region_search').on('compositionstart',function(){flag = false;});$('#dev_region_search').on('compositionend',function(){flag = true;});$('#dev_region_search').on('input',function(){setTimeout(function(){if(flag){searchRegion();}},0);});});

思路:

compositionstart: 输入开始时触发

compositionend: 选择字/词完成输入时触发

而直接输英文是不触发compositionstart,compositionend事件的,所以开始的标识flag为true才会走后面的searchRegion()方法,

输入中文的则结合compositionstart,compositionend来判断输入完成情况决定走不走后面的searchRegion()方法.

这里加的延时setTimeout是因为默认情况下input比compostionend先执行了,导致flag标识不准确.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。