2016-08-23 11 views
0

テキストボックスの値が変わるたびに関数を実行します。これは通常、次のように行われます。HTMLテキストボックスの値がdocument.getElementById( "textfield")のために変更された場合、Javascript関数を実行するにはどうすればよいですか?

onchange="myfunction()" 

上記の私はいくつかの追加のrequirmentsを持っているので、私のために動作しません。

  1. ユーザーが「Tab」を押すか他の要素を選択するのを待つのではなく、任意のテキストが入力されるとすぐに実行する関数が必要です。
  2. JavaScriptがフィールドを自動的に更新するために使用されるときは、関数を実行します(下記のステートメントを参照)。

    document.getElementById("textfield").value = ""; 
    
+2

だけの要素を変更するコードから 'MyFunctionを()'を呼び出します。私が知る限り自動的にそれを行うことは何もありません。イベントは通常、外部からトリガーされたアクションのみであり、スクリプト自体によるアクションではありません。 – Barmar

+1

#1の場合、[* input * event](https://developer.mozilla.org/en-US/docs/Web/Events/input)ですが、古いブラウザのサポートが不足している可能性があります。 2つめは、[*突然変異イベント*](https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes)で様々な試みが行われていますが、どれも成功していないか、採用された。ポーリングはオプションですが、一般的には悪い考えです。要素に値を変更するコードがあるかどうかを確認してください([* changeatch * change event *](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent))。 – RobG

答えて

-1

するTry jqueryの

$(".textfieldClass").change(function(){ //do something with the new text: $(this).val() });

https://api.jquery.com/change/

+1

質問に明示的にタグが付けられているか、明示的に記載されている場合にのみ、ライブラリアンサーで回答してください。 – RobG

関連する問題