2011-01-12 24 views
1

私が使用しているウィジェットは、HTMLテキストエリアの要素を変更します。その要素がいつ変更されたのかを知る必要があり、実際にはその要素も隠すことが望ましいです。私はjQueryを使用しているので、自然に$( 'textarea_id')。change()イベントを試しました。しかし、私はテキストエリアが決してフォーカスを失うことはないと思うので、決して誘発されません。JavaScriptでHTMLテキストエリアが変更された場合の通知方法

このテキスト領域を監視するには、どのような方法が最適です(隠されていることが好ましいですか?私に言わないでくださいsetInterval ...

+0

クロスブラウザ以外のソリューションがあるかもしれません。 – goat

+0

本当に答えはありますが、ウィジェットに独自の「変更」イベントがあるかどうかを確認することをおすすめします。 –

+0

'setInterval'の何が問題なのですか?これは明らかな解決策です。 – lonesomeday

答えて

1

これはグローバル変数で管理できます。私は.keyup()を使用するhttp://jsfiddle.net/n8keN/

+1

if if他のjavascriptコードがテキストエリアを変更したときに、「キーアップペースト」が機能しません。 –

0

var text = ""; 

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

作業例。イベントがすべてのキー押しを発生させないようにするには、キーを押すたびに半秒タイマーを再起動し、ユーザーが入力をやめたときに発生させたいものをタイマーにトリガーさせます。あなたは好きなときにそれを得るために時間をかけて遊ぶことができます。

+1

他のJavaScriptコードがテキストエリアを変更すると「キーアップ」が機能しません。 –

関連する問題