亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用JQuery檢測<inputtype=“text”>(立即)的所有更改

使用JQuery檢測<inputtype=“text”>(立即)的所有更改

MM們 2019-08-03 12:03:13
使用JQuery檢測<inputtype=“text”>(立即)的所有更改的值有很多種方法。<input type="text">可以改變,包括:按鍵復制/粘貼用JavaScript修改由瀏覽器或工具欄自動完成我希望在JavaScript函數發生變化時(使用當前的輸入值)調用它。我希望它被立即調用,而不僅僅是當輸入失去焦點時。我正在尋找在所有瀏覽器上(最好使用jQuery)的最干凈和最健壯的方法來實現這一點。示例用例:在Twitter注冊頁,用戶名字段的值顯示在url中“http://twitter/用戶名“在它下面。
查看完整描述

3 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

這個jQuery代碼捕捉到對任何元素的立即更改,并且應該在所有瀏覽器中工作:

 $('.myElements').each(function() {
   var elem = $(this);

   // Save current value of element
   elem.data('oldVal', elem.val());

   // Look for changes in the value
   elem.bind("propertychange change click keyup input paste", function(event){
      // If value has changed...
      if (elem.data('oldVal') != elem.val()) {
       // Updated stored value
       elem.data('oldVal', elem.val());

       // Do action
       ....
     }
   });
 });




查看完整回答
反對 回復 2019-08-05
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

jQuery>=1.9的實時花式解決方案

$("#input-id").on("change keyup paste", function(){
    dosomething();})

如果您還想檢測到“單擊”事件,只需:

$("#input-id").on("change keyup paste click", function(){
    dosomething();})

如果使用jQuery<=1.4,只需使用live而不是on.




查看完整回答
反對 回復 2019-08-05
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

不幸的是,我認為setInterval獲獎:

<input type=text id=input_id /><script>setInterval(function() { ObserveInputValue($('#input_id').val()); }, 100);</script>

這是最干凈的解決方案,只有1行代碼。它也是最健壯的,因為您不必擔心所有不同的事件/方式input才能得到價值。

在這種情況下,使用“setInterval”的缺點似乎不適用:

  • 100 ms的潛伏期?

    對于許多應用程序來說,100 ms就足夠快了。
  • 在瀏覽器上添加了負載?

    通常來說,在頁面上添加大量的重集交換是不好的。但是在這種情況下,添加的頁面加載是無法檢測的。
  • 它不會擴展到很多輸入?

    大多數頁面只有少數輸入,您可以在同一個setInterval中嗅探所有輸入。




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 428 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號