5

JavaScript によって変更されたときに、input type="text" の変更をすぐに検出したいと考えています。ユーザーが手動で変更した場合、次の方法で検出をトリガーできます。

onchange="myfunction();" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();"

私はこれを理解することはできません。

4

2 に答える 2

1

MutationObserver属性の変更を観察できるオブジェクトを使用できます。el.value = ...ただし、の代わりに実行したときにコールバックが呼び出されるかどうかはわかりませんel.setAttribute('value', ...)

valueを使用して、プロパティのカスタム セッターを定義することもできますObject.defineProperty。ただし、DOM 要素に対して行ったことはありません。セッターが既に定義されている場合は、新しいセッターもそれを呼び出すようにする必要があります。Object.getOwnPropertyDescriptor現在のセッターがあれば、おそらくそれを取得するために使用できます。

最後に、最後の手段として、要素setIntervalのプロパティが変更されたかどうかを定期的に確認するためにいつでも使用できますvalueが、私はこのアプローチがあまり好きではありません。ただし、これが唯一のクロスブラウザーである可能性があります。

残念ながら、現時点ではこれをテストすることはできませんが、後で戻ってこの回答を更新します.

于 2013-08-29T21:45:27.517 に答える