鍍金池/ 問答/HTML5  HTML/ 輸入框沒輸完就監(jiān)聽change事件

輸入框沒輸完就監(jiān)聽change事件

clipboard.png

比如: 監(jiān)聽了輸入框的change事件, 然后我想等輸入完成再觸發(fā)change事件
這個(gè)要怎么處理才好

回答
編輯回答
雨蝶

onblur能滿足你的要求么?

2017年4月8日 14:37
編輯回答
愚念

之前寫的關(guān)于這個(gè)問題的博客。
https://lonhon.top/2017/10/09...

2018年3月22日 06:28
編輯回答
忠妾

你看下函數(shù)抖動(dòng)

2018年3月27日 05:29
編輯回答
夏夕

你綁定是是change事件嗎?change事件是在blur時(shí)才觸發(fā)的?
對(duì)于這種需要拼寫的輸入有一個(gè)事件可以試試compositionend,兼容性不知道咋樣。

2017年12月27日 16:07
編輯回答
獨(dú)特范

如果能確定最終輸入內(nèi)容是什么類型的話試試在每次change觸發(fā)的函數(shù)里加個(gè)判斷,比如用正則判斷一下是不是幾個(gè)漢字之類的,但估計(jì)效率比較低。

正則判斷漢字:https://m.baidu.com/s?from=10...

2018年3月29日 19:44
編輯回答
熟稔

如樓上所說,看下防抖和節(jié)流。http://www.icrazyman.cn/2018/...
這篇文章里有介紹,可以看看

2017年9月3日 17:23
編輯回答
命多硬

這個(gè)還真不好控制,要么監(jiān)聽到按了空格吧,輸入英文你就監(jiān)聽不到了

2018年7月4日 23:08
編輯回答
柒槿年

項(xiàng)目中這樣使用。
其本質(zhì)還是監(jiān)聽 composition 系列事件。
composition 系列事件文檔

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

<script>
  let input = document.querySelector('#input');

  packageInputEvent(input, callback);

  function callback() {
    console.log('callback');
  }
  function packageInputEvent(input, callback) {
    let useCompositionEvent = false;

    input.addEventListener('input', function(e) {
      !useCompositionEvent && callback.call(this, e);
    });
    input.addEventListener('compositionstart', function() {
      useCompositionEvent = true;
    });
    input.addEventListener('compositionend', function(e) {
      useCompositionEvent = false;
      callback.call(this, e);
    });
  }
</script>
2017年11月4日 02:50