input输入中文时,拼音会重复调起input事件

在输入中文会先后触发compositionstart、input、compositionend事件,类似于keydown和keyup的组合,

触发compositionstart时,文本框会填入 “虚拟文本”(待确认文本),同时触发input事件;在触发compositionend时,就是填入实际内容后(已确认文本),那么当调用compositionstart 时需要阻止触发input

代码如下:

var cpLock =true;

$('#searchPeople').off().on({

compositionstart:function () {//中文输入开始

    cpLock =false;

      },

  compositionend:function () {//中文输入结束

    cpLock =true;

    that.userWorkUserList(cpLock)                        输入框输入时这里触发 事件

    },

  input:function () {//input框中的值发生变化

          that.userWorkUserList(cpLock)              删除输入框内容时调起这里的方法

    }

})

userWorkUserList:(val){

if(val){      //cpLock 为false状态下阻止触发  true 状态下触发事件



}

}

你可能感兴趣的:(input输入中文时,拼音会重复调起input事件)