¿Hay alguna forma de que pueda crear una función constante que escuche una entrada, de modo que cuando ese valor de entrada cambie, algo se active inmediatamente?
Estoy buscando algo que use javascript puro, sin complementos, sin marcos y no puedo editar el HTML.
Algo, por ejemplo:
Cuando cambio el valor en la entrada MyObject
, esta función se ejecuta.
¿Alguna ayuda?
javascript
gespinha
fuente
fuente
typeof this.value
esstring
. Si se necesita un número, conviértalo con parseInt o parseFloat .Como ejemplo básico ...
HTML:
<input type="text" name="Thing" value="" />
Guión:
/* event listener */ document.getElementsByName("Thing")[0].addEventListener('change', doThing); /* function */ function doThing(){ alert('Horray! Someone wrote "' + this.value + '"!'); }
Aquí hay un violín: http://jsfiddle.net/Niffler/514gg4tk/
fuente
En realidad, la respuesta marcada es exactamente correcta, pero la respuesta puede estar en
ES6
forma:HTMLInputElementObject.oninput = () => { console.log('run'); // Do something }
O se puede escribir como a continuación:
HTMLInputElementObject.addEventListener('input', (evt) => { console.log('run'); // Do something });
fuente
Uso predeterminado
el.addEventListener('input', function () { fn(); });
Pero , si desea disparar un evento cuando cambia el valor de las entradas manualmente a través de JS, debe usar un evento personalizado (cualquier nombre, como 'myEvent' \ 'ev', etc.) SI necesita escuchar los formularios 'change' o 'input' event y cambia el valor de las entradas a través de JS; puede nombrar su evento personalizado 'cambio' \ 'entrada' y también funcionará.
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
fuente
en lugar de id, use title para identificar su elemento y escriba el código como se muestra a continuación.
$(document).ready(()=>{ $("input[title='MyObject']").change(()=>{ console.log("Field has been changed...") }) });
fuente