2012-07-03 103 views
2

可能重複:
How to detect textbox change event from javascript檢測更改事件立即

我怎麼能檢測插入值,插入後的文本字段? change只有焦點丟失後,事件纔會上升,keyPress, keyUp, keyDown等不能幫助我,因爲從條形碼掃描儀插入新值(它不會增加此鍵盤事件)。只使用定時器並定期檢查文本字段中的值?

+0

你嘗試'onchange'事件? –

+0

這並不簡單,嘗試使用一些預製腳本,如http://whattheheadsaid.com/projects/input-special-event – biziclop

+0

這真的不行!我無法相信......知道這很有趣。謝謝! –

回答

0

你的意思是這個http://jsfiddle.net/SP69J/10/

功能

$(document).ready(check); 
    var previousvalue=""; 
function check(){ 
var val=$("#inputcontrol").val(); 
var interval; 

interval = window.clearInterval(interval); 
    if(val!=previousvalue){ 
    alert("value changed"); 
     previousvalue=$("#inputcontrol").val(); 
    }   
interval = window.setInterval(check, 500);  
}​ 

設置的時間間隔根據自己的需要。

HTML:

<input type="text" id="inputcontrol">​ 
1

可以使用oninput事件。只要在現場進行輸入,它就會觸發。

欲瞭解更多信息,我會從這個博客獲得報價:http://whattheheadsaid.com/2010/09/effectively-detecting-user-input-in-javascript(由@AndyE書面)

談到的onkeydown和定時器...

然而,這仍然沒有按」處理不涉及鍵盤的輸入。還有什麼其他類型的輸入?上下文菜單操作如何?剪切,粘貼,撤消和重做?拖放?一段時間以來,一些事件可以處理一些其他類型的輸入變化 - 一些瀏覽器支持onpaste,oncut和oncopy事件 - 但它們不是標準的,有些供應商太過頑固,無法實現它們。

輸入HTML 5事件。

對於一個跨瀏覽器的jQuery插件,你可以看看這一個(同一作者):http://whattheheadsaid.com/projects/input-special-event