oninput事件在input或textarea元素的值發生改變時觸發
onchange事件也是監聽文本框變化后觸發,不同的是oninput事件是立即(即時)觸發,onchange則是在元素失去焦點時觸發
onchange的觸發頻率僅次于oninput事件
使用DOM3以下三種復合事件:
1、compositionstart:官方解釋,觸發于一段文字的輸入之前,也就是在輸入一段需要的文本(第一個字母開始)或語音開始輸入時會觸發。
2、compositionupdate訪問data:正插入的新字符;
3、compositionend訪問data:插入的所有字符;
文本框會填入 “虛擬文本”(待確認文本),同時觸發input事件;在觸發compositionend時,就是填入實際內容后(已確認文本)。
js代碼:
~~~
var flag = true;
$('#id').on('compositionstart',function(){
flag = false;
})
$('#id').on('compositionend',function(){
flag = true;
})
$('#id').on('input',function(){
setTimeout(function(){
if(flag){
console.log(1);
}
},0)
})
~~~
[另外一種方法]([https://blog.csdn.net/freshlover/article/details/39050609](https://blog.csdn.net/freshlover/article/details/39050609))