国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

中文輸入法不觸發onkeyup事件的解決辦法

2019-11-20 14:21:52
字體:
來源:轉載
供稿:網友

這兩天做一個需要實時監控文本框輸入的功能,碰到了中文輸入法無法觸發onkeyup事件的惡心問題。

具體表現是這樣的:

當監聽一個input的keyup的事件的時候,英文輸入法的情況下可以實時的通過keyup事件檢測到文本框value的變化,但是當輸入法變成中文后,input的keyup事件就不會被正常觸發。這是最先前的寫法。

<html><head><script type="text/javascript" src="http://m.survivalescaperooms.com/static/js/jquery-1.4.2.min.js"></script></head><body>  <p>    使用keyup事件檢測文本框內容:  </p>  <p>    <input type="text" name="keyup_i" id="keyup_i" autocomplete="off"/>    <span id="keyup_s"></span>    <script type="text/javascript">      $('#keyup_i').bind('keyup', function(){        $('#keyup_s').text($(this).val());      })    </script>  </p></body></html>

如你所見,這樣的寫法遇到了中文不能觸發keyup事件的問題。于是尋求解決方法,想起來baidu的搜索欄提示似乎是沒有這個問題的,于是開始看百度的js。百度的js比較難看...方法命名凈是一個字母,最后發現大概是使用了timeout做一個定時器來定時監測input框的修改。不是很滿意這樣的方法。于是繼續查找看有沒有更好的解決辦法,于是就找到了oninput和onpropertychange兩個事件。

oninput是firefox下面可用,而onpropertychange則是ie下可用。兩個方法有著一些區別。

oninput只能檢測到value這個屬性的變化,而onpropertychange則可以檢測到包含value的所有屬性的變化。于是開始改成這個樣子。

<html><head><script type="text/javascript" src="http://m.survivalescaperooms.com/static/js/jquery-1.4.2.min.js"></script></head><body>  <p>    使用oninput以及onpropertychange事件檢測文本框內容:  </p>  <p>    <input type="text" name="inputorp_i" id="inputorp_i" autocomplete="off"/>    <span id="inputorp_s"></span>    <script type="text/javascript">      //先判斷瀏覽器是不是萬惡的IE,沒辦法,寫的東西也有IE使用者      var bind_name = 'input';      if (navigator.userAgent.indexOf("MSIE") != -1){        bind_name = 'propertychange';      }      $('#inputorp_i').bind(bind_name, function(){        $('#inputorp_s').text($(this).val());      })    </script>  </p></body></html>

問題這么被解決了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中方县| 林芝县| 陵川县| 湛江市| 环江| 罗山县| 文成县| 晋宁县| 达拉特旗| 阿合奇县| 醴陵市| 万山特区| 万州区| 若羌县| 海兴县| 门头沟区| 尚义县| 夏河县| 白水县| 洱源县| 眉山市| 嘉祥县| 栖霞市| 海淀区| 烟台市| 武冈市| 太保市| 建阳市| 蓬安县| 广南县| 西乡县| 大关县| 贵港市| 巫溪县| 白水县| 常德市| 特克斯县| 临邑县| 泾川县| 临西县| 博兴县|