Adakah cara agar saya dapat membuat fungsi konstan yang mendengarkan input, jadi ketika nilai input itu berubah, sesuatu akan segera dipicu?
Saya mencari sesuatu menggunakan javascript murni, tanpa plugin, tanpa kerangka kerja dan saya tidak dapat mengedit HTML.
Sesuatu, misalnya:
Ketika saya mengubah nilai input MyObject
, fungsi ini berjalan.
Ada bantuan?
javascript
gespinha
sumber
sumber
typeof this.value
adalahstring
. Jika diperlukan angka, konversikan dengan parseInt atau parseFloat .Sebagai contoh dasar ...
HTML:
<input type="text" name="Thing" value="" />
Naskah:
/* event listener */ document.getElementsByName("Thing")[0].addEventListener('change', doThing); /* function */ function doThing(){ alert('Horray! Someone wrote "' + this.value + '"!'); }
Ini biola: http://jsfiddle.net/Niffler/514gg4tk/
sumber
Sebenarnya jawaban yang dicentang benar, tetapi jawabannya bisa
ES6
berbentuk:HTMLInputElementObject.oninput = () => { console.log('run'); // Do something }
Atau bisa ditulis seperti di bawah ini:
HTMLInputElementObject.addEventListener('input', (evt) => { console.log('run'); // Do something });
sumber
Penggunaan default
el.addEventListener('input', function () { fn(); });
Tetapi , jika Anda ingin mengaktifkan peristiwa ketika Anda mengubah nilai input secara manual melalui JS, Anda harus menggunakan peristiwa khusus (nama apa pun, seperti 'myEvent' \ 'ev' dll.) JIKA Anda perlu mendengarkan peristiwa 'perubahan' atau 'masukan' formulir dan Anda mengubah nilai input melalui JS - Anda dapat menamai acara khusus Anda 'change' \ 'input' dan itu akan berfungsi juga.
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
sumber
alih-alih id gunakan judul untuk mengidentifikasi elemen Anda dan tulis kode seperti di bawah ini.
$(document).ready(()=>{ $("input[title='MyObject']").change(()=>{ console.log("Field has been changed...") }) });
sumber