zoukankan      html  css  js  c++  java
  • input事件引发的输入法错乱问题

    给元素绑定onCompositionStart和onCompositionEnd事件,并制定标记位,外加个防抖。

    注意:

    并不是先执行onCompositionStart再执行onCompositionEnd再执行onInput的顺序;

    而是执行onCompositionStart,生成“虚文本”,同时会触发onInput事件;

    当onCompositionEnd之后,才是真实文本。

    兼容性:(兼容ie和谷歌哦,好用!)

    <input type="text" id="test">

    var compositionFlag = true;

    var timer = null;

    var tempValue = '';

    $('#test').on('compositionstart',function(){

      compositionFlag = false;

      tempValue = $('#test').val();//虚文本值

      console.log(tempValue);

    })

    $('#test').on('compositionend',function(){

      compositionFlag = true;

    })

    $('#test').on('input',function(){

      if(timer){

        clearTimerout(timer);

      }

      timer = setTimeout(function(){

        if(compositionFlag){

          console.log($('#test').val());//真实文本

          //这里做你需要的逻辑

        }

      },1000)

    })

  • 相关阅读:
    程序员都必读
    ia-64 vs x86-64
    Linux内核学习
    开源liscense对比
    列存储
    大数据科普
    [USACO1.5]数字三角形
    [USACO08FEB]酒店Hotel
    数的划分
    CodeForce 18D
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/13099578.html
Copyright © 2011-2022 走看看