美文网首页
中文输入法下的input、compositionstart与co

中文输入法下的input、compositionstart与co

作者: 洛桃桃 | 来源:发表于2018-10-02 18:12 被阅读0次

    实现中文输入法下,仅在选词后触发input事件。

    描述

    在使用oninput监控输入框内容变化时,我们期望仅在value值变化时,才触发oninput事件,而在中文输入下,未选词时的按键也会触发oninput事件。
    input事件触发效果

    关键

    • compositionstart事件
    • compositionend事件

    方法

    使用一个变量表示拼写状态,在oninput事件中判断是否在拼写状态,当拼写状态结束,继续执行下一步操作。

    var typing = false;
    $('#ipt').on('compositionstart',function(){
        typing = true;
    })
    $('#ipt').on('compositionend',function(){
        typing = false;
    })
    //oninput在oncompositionend之前执行,需加定时器
    $('#ipt').on('input',function(){
        setTimeout(function() {
            if(!typing) {
                //To do something...
            }
        },0);
    })
    
    //或用keyup代替input
    $('#ipt').on('input',function(){
        if(!typing) {
            //To do something...
        }
    })
    

    效果

    效果图

    相关文章

      网友评论

          本文标题:中文输入法下的input、compositionstart与co

          本文链接:https://www.haomeiwen.com/subject/hmdaoftx.html