¿El elemento de entrada de texto no tiene un evento de cambio? Cuando adjunto un manejador de eventos de cambio a una entrada de texto, no se dispara. Keyup se activa, pero el keyup no es suficiente para detectar un cambio ya que obviamente hay otras formas de ingresar texto en una entrada.jQuery textbox change event
Respuesta
No hay una solución real para esto, incluso en los enlaces a otras preguntas dadas anteriormente. ¡Al final he decidido usar setTimeout
y llamar a un método que verifica cada segundo! No es una solución ideal, pero una solución que funciona y el código que estoy llamando es lo suficientemente simple como para no tener un efecto en el rendimiento al ser llamado todo el tiempo.
function InitPageControls() {
CheckIfChanged();
}
function CheckIfChanged() {
// do logic
setTimeout(function() {
CheckIfChanged();
}, 1000);
}
Espero que esto ayude a alguien en el futuro, ya que parece que no hay manera segura de acheiving esto utilizando controladores de eventos ...
El evento de cambio solo se dispara después de que la entrada pierde el foco (y se cambió).
Si REALMENTE desea saber cuándo cambia algún texto, más o menos como cambia, está atrapado sondeando la entrada. Es decir, use setInterval con una función que compare el valor actual de la entrada con un valor previamente almacenado (a través de una variable con un alcance mayor que la función). Si los dos valores no coinciden, se produjo un cambio. Luego, almacene el valor actual en esa otra variable para la siguiente verificación. – ventaur
La especificación HTML 4 para el <input>
element especifica los siguientes eventos de secuencias de comandos están disponibles:
onfocus, onblur, onselect, onchange, onclick, ondblclick, onMouseDown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
He aquí un ejemplo que se unen de a todos estos eventos y muestra lo que está pasando http://jsfiddle.net/pxfunc/zJ7Lf/
Creo que se puede filtrar qué eventos son verdaderamente relevante a su situación y detectar lo que el valor de texto era antes y después del evento para determinar un cambio
Pensé en usar cambio, enfoque, desenfoque, combinación de teclas y mouseup todos juntos; sin embargo, el mouseup solo se dispara si el mouse está sobre el texbox, esto significa que no recoge un usuario pegando desde un menú contextual donde es probable que pegar fuera del alcance de la entrada de texto – jcvandan
parece que los navegadores más recientes admiten eventos 'pegar' y 'ingresar', los agregué luego de encontrarlos aquí, [jquery - ¿Cómo detectar el clic derecho del mouse + pegar usando JavaScript?] (http: // stackoverflow.com/questions/441631/how-to-detect-right-mouse-click-paste-using-javascript)...heres the [updated fiddle] (http://jsfiddle.net/pxfunc/zJ7Lf/1/) – MikeM
potencialmente útil pero no puede usarlos realmente si no tienen un soporte muy amplio. – jcvandan
he encontrado que esto funciona:
$(document).ready(function(){
$('textarea').bind('input propertychange', function() {
//do your update here
}
})
Lo uso extensivamente para validar en línea con ajax. Creo que los nuevos eventos de mutación discutidos reemplazarán parte de esta funcionalidad, pero esta solución ha sido probada en Firefox, Chrome, IE 10 y Safari y se sabe que está funcionando. –
se puede lograr:
$(document).ready(function(){
$('#textBox').keyup(function() {alert('changed');});
});
o con el cambio (copiar pegar mango con clic derecho):
$(document).ready(function(){
$('#textBox2').change(function() {alert('changed');});
});
Aquí es Demo
$('#input').on("input",function() {alert('changed');});
funciona para mí.
- 1. jQuery valor change event delay
- 2. jQuery change event llamado dos veces
- 3. iframe contents change event?
- 4. javascript property change event
- 5. gwt textbox add change handler
- 6. html element content change event
- 7. Seleccione Option Change DropdownList C# ASP.NET Fire Event
- 8. jQuery change event en <select> no activada en IE
- 9. jQuery is attr update on checkbox is not trigger change event
- 10. JQuery Click versus Change
- 11. jquery change div text
- 12. jquery change background-image
- 13. jQuery buttonset change
- 14. jQuery iframe load() event?
- 15. JQuery Datatables ready event?
- 16. jQuery fadeIn event?
- 17. jQuery dispatch event? Cómo
- 18. jQuery Timed Event
- 19. ¿Delay jquery hover event?
- 20. C# textbox event solo para entrada de usuario
- 21. jquery change onclick evento de href
- 22. jQuery Validate on Tab change
- 23. evento Change preferencia con jQuery
- 24. jquery .live on load event
- 25. jquery-ui datepicker change z-index
- 26. jquery hover/change css property help
- 27. jQuery .change() en el botón de radio
- 28. Forzar la función .change() para ejecutar - jQuery
- 29. Combinar jQuery ordenable y Drop Event
- 30. jquery live event se ejecuta dos veces
Quizás esto ayude: http://stackoverflow.com/questions/1481152/jquery-how-to-detect-a-textboxs-content-has-changed – Bashwork
¿Está usando $ ('input'). Change (function() {hacer algo}); ? – tenshimsm
Sí, estaba usando .change y .keyup, pero no son suficientes, consulte mi respuesta a continuación ... – jcvandan