Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] onChange sin perder foco

Estas en el tema de onChange sin perder foco en el foro de Javascript en Foros del Web. Hola tengo un <input type="text"> y necesito disparar una función cuando cambie su valor. El tema es que el evento onChange recién se dispara cuando ...
  #1 (permalink)  
Antiguo 23/11/2019, 13:30
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
onChange sin perder foco

Hola tengo un <input type="text"> y necesito disparar una función cuando cambie su valor. El tema es que el evento onChange recién se dispara cuando el elemento pierde el foco, yo necesito disparar la función en cuanto el cambio se produzca.
El valor del input no cambia por teclado, es un valor que se selecciona de una ventana modal. ¿Hay alguna forma de lograr esto?

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 23/11/2019, 18:09
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: onChange sin perder foco

Haz probado con

Código Javascript:
Ver original
  1. miInput.addEventListener('input', function(datos){
  2.     console.log('this', this, 'datos', datos);
  3. })
  #3 (permalink)  
Antiguo 24/11/2019, 04:17
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: onChange sin perder foco

Me parece que deberás usar temporizadores para hacer ese control:
Código:
<!DOCTYPE html>
<html>
<body>
<input type="text" id="myInput">
<p id="demo"></p>
<script>
//simulación de ingreso de valores sin teclado
setTimeout(function(){document.getElementById("myInput").value=5;},1000);
setTimeout(function(){document.getElementById("myInput").value=15;},2000);
setTimeout(function(){document.getElementById("myInput").value=8;},3000);

//aquí empezamos el control
var memo=document.getElementById("myInput").value;

//aquí chequeamos c/100 milisegundos
setInterval(function(){if(memo!=document.getElementById("myInput").value){memo=document.getElementById("myInput").value;document.getElementById("demo").innerHTML='nuevo valor:'+memo;}},100);
</script>
</body>
</html>
  #4 (permalink)  
Antiguo 26/11/2019, 12:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: onChange sin perder foco

¿Cómo realizas la carga del valor seleccionado en la ventana modal? Si para ello utilizas un script, en el mismo, luego de la asignación del valor, podrías ejecutar la función a la cual haces referencia.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 28/11/2019, 14:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: onChange sin perder foco

Muchas gracias por todas sus respuestas, fueron muy útiles.
Finalmente, como estoy trabajando bajo jquery lo hice así:

$('#'+campo1).trigger('change');

Esto dispara el evento change del elemento.

Etiquetas: foco, onchange, perder, text
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.