入力をリッスンする定数関数を作成して、その入力値が変更されるとすぐに何かがトリガーされる方法はありますか?
純粋なJavaScript、プラグイン、フレームワークを使用していないものを探していますが、HTMLを編集できません。
何か、例えば:
入力の値を変更するとMyObject、この関数が実行されます。
何か助けはありますか?
回答:
これがイベントの目的です。
HTMLInputElementObject.addEventListener('input', function (evt) {
something(this.value);
});
基本的な例として...
HTML:
<input type="text" name="Thing" value="" />
脚本:
/* event listener */
document.getElementsByName("Thing")[0].addEventListener('change', doThing);
/* function */
function doThing(){
alert('Horray! Someone wrote "' + this.value + '"!');
}
ここにフィドルがあります:http://jsfiddle.net/Niffler/514gg4tk/
デフォルトの使用法
el.addEventListener('input', function () {
fn();
});
ただし、JSを介して入力値を手動で変更するときにイベントを発生させたい場合は、カスタムイベント(「myEvent」\「ev」などの任意の名前)を使用する必要があります。フォームの「change」または「input」イベントをリッスンする必要がある場合そして、JSを介して入力値を変更します-カスタムイベントに「change」\「input」という名前を付けることができ、それも機能します。
var event = new Event('input');
el.addEventListener('input', function () {
fn();
});
form.addEventListener('input', function () {
anotherFn();
});
el.value = 'something';
el.dispatchEvent(input);
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events