1. ホーム
  2. javascript

[解決済み] テキストボックスの内容が変更されたことを検出する方法

2022-03-21 07:10:33

質問

テキストボックスの内容が変更されたことを検出したい。keyupメソッドを使うこともできますが、それでは矢印キーのような文字を生成しないキーストロークも検出されてしまいます。keyupイベントを使用してこれを行う方法を2つ考えました。

  1. 押されたキーのASCIIコードがletterbackspacedeleteであるかどうかを明示的にチェックする。
  2. クロージャを使用して、キーストローク前のテキストボックス内のテキストを記憶し、これが変更されたかどうかをチェックします。

どちらもなんだか面倒くさそうですね。

解決方法は?

変更」イベントではなく「入力」イベントを観測するようにする。

jQuery('#some_text_box').on('input', function() {
    // do your stuff
});

...これは素晴らしく、きれいですが、さらに拡張することができます。

jQuery('#some_text_box').on('input propertychange paste', function() {
    // do your stuff
});