2011-01-12 106 views
1

我正在使用的小部件會修改HTML textarea元素。我需要知道該元素何時被修改,並且最好還是想隱藏該元素。我使用jQuery,所以我自然嘗試了$('#textarea_id')。change()事件。但它從來沒有觸發,因爲我猜textarea從不失去焦點。如何判斷HTML文本區域何時被Javascript更改

什麼是監控textarea的,最好是隱藏的最好辦法(CSS有顯示:無)?請不要告訴我setInterval ...

+0

可能有一些非跨瀏覽器的解決方案 – goat 2011-01-12 20:54:32

+0

不是一個真正的答案,但我會建議看,如果小部件都有自己的'change`事件。 – 2011-01-12 20:54:34

+0

`setInterval`有什麼問題?這是顯而易見的解決方案。 – lonesomeday 2011-01-12 20:58:02

回答

1

你可以用一個全局變量來管理它。

var text = ""; 

$('#textarea_id').bind("keyup paste", function(e){ 
    if ($(this).val() != text) 
    { 
     // text changed 
     text = $(this).val(); 
    }  
}); 

工作示例:http://jsfiddle.net/n8keN/

0

我會用.keyup()。如果您不希望事件觸發每次按鍵,請讓每次按鍵重新啓動半秒計時器,並讓計時器觸發用戶停止鍵入時要發生的事情。你可以隨時玩弄自己的喜好。