2017-12-05 5 views
0

<textarea>がjqueryのフォームから更新されています。私はかもしれない実際には何もテキストエリアに直接入力することはありません。jQueryでフィールドへの間接更新を検出します。

しかし、textareaのテキスト領域の直接入力からの変更をどのように監視できるかを知る必要がありますか?

私は、ユーザーがmyTextboxを編集しているとき知って

$('#myTextbox').on('input', function() { 
    // do something 
}); 

を使用することができます。

私は

$('#myTextbox').on('change', function() { 
    // do something 
}); 

を試してみましたが、それはどちらか動作しませんでした。

これは可能ですか?

+0

[JQuery検出プログラム変更イベント](https://stackoverflow.com/questions/359087/jquery-detecting-programatic-change-event)の可能な複製 – JJJ

+0

2つの別個のフォームですか?私は、テキストエリアにデータを送信し、データを送信する別のフォームを一緒に送信するフォームがあることを意味していますか? – AndyWarren

+0

また、リアルタイム監視が必要ですか、それとも数秒ごとにポーリングして変更を確認できますか? – AndyWarren

答えて

-1

だけで何かが起こっているかどうかを確認するために、キーボードコマンドを使用します。

$('#myTextbox').on('keydown', function() { 
    // do something 
}); 

その方法をあなたは知っているだろう、それに誰かがこれまでのタイプの場合。そうでなければあなたは間接的に見つけるためにしようとしている場合のようなので、あなたは、入力が使用されているときはいつでもチェックするものを使用することができます:あなたはこの

var searchValue = $('#myTextbox').val(); 

function checkSearchChanged() { 
    var currentValue = $('#myTextbox').val(); 
    if ((currentValue) && currentValue != searchValue && currentValue != '') { 
     searchValue = $('#myTextbox').val(); 
     console.log(searchValue) 
    } 
    setTimeout(checkSearchChanged, 0.1); 
} 

$(function() { 
    setTimeout(checkSearchChanged, 0.1); 
}); 

のような間隔やタイムアウトを使用して試すことができます

$('input').on('keydown', function() { 
    var checkDiv = $('#myTextbox').val(); 
    if(checkDiv != ""){ 
     // do something 
    } 
}); 
+1

人はそれを入力する人を見守っているのではなく、むしろ ''入力に外部フォームからデータが書き込まれています。もし私がその質問を理解していれば。 – AndyWarren

1

チェックアウト作業プランナーhere

+0

私は 'setInterval()'がもっと適切かもしれないと思っていましたが、私はこれらの行についても考えていました。 '.01'は非常に速くチェックしているので、何度もポーリングする必要があるかどうかは分かりません。私が間違っていなければ、それは1/100ミリ秒になります。 – AndyWarren

+0

0.1が最小タイマーの解像度より下です。それは1に設定するのとまったく同じです。 – JJJ

関連する問題