Quiero capturar si sucedió algún cambio <textarea>
. Como escribir cualquier carácter (eliminar, retroceder) o hacer clic con el mouse y pegar o cortar. ¿Hay un evento jQuery que pueda desencadenar todos esos eventos?
Intenté cambiar el evento, pero activa la devolución de llamada solo después de eliminar el componente.
Uso : Quiero habilitar un botón si a <textarea>
contiene algún texto.
javascript
jquery
jquery-ui
Paleta
fuente
fuente
Respuestas:
Prueba esto en realidad:
MANIFESTACIÓN
Eso funciona para cualquier cambio que realice, escribir, cortar, pegar.
fuente
propertychange
existe tambiéninput
<input type="text">
, no<textarea>
bind
es obsoleto. Usoon
:Nota: El código anterior se disparará varias veces, una por cada tipo de disparador coincidente. Para manejar eso, haga algo como esto:
jsFiddle Demo
fuente
on("change", function() ....
parte no me funciona. No activa ninguna alerta, ni registros de consola, nada. Sin embargo, para keyup funciona como un encanto.on("change", function() ...
es solamente activa cuando el área de texto pierde el foco . Consulte mi pregunta anterior para esto, y pruébelo en este violín : cambie el área de texto, luego haga clic fuera del área de texto, y debería ver cómo se activa el evento de cambio.Usa un
input
evento.fuente
Esta pregunta necesitaba una respuesta más actualizada, con fuentes. Esto es lo que realmente funciona (aunque no tiene que tomar mi palabra):
1: https://developer.mozilla.org/en-US/docs/Web/Events/input#Browser_compatibility
2: oninput en IE9 no se activa cuando pulsamos BACKSPACE / DEL / do CUT
3: https: // msdn .microsoft.com / es-us / library / ms536956 (v = vs.85) .aspx
4: http://api.jquery.com/prop/#prop-propertyName-function
PERO, para obtener una solución más global que pueda usar en todo su proyecto , le recomiendo usar el complemento jQuery de cambio de texto para obtener un nuevo
textchange
evento compatible con varios navegadores . Fue desarrollado por la misma persona que implementó elonChange
evento equivalente para ReactJS de Facebook, que utilizan para casi todo su sitio web. Y creo que es seguro decir que si es una solución lo suficientemente robusta para Facebook, probablemente sea lo suficientemente sólida para usted. :-)ACTUALIZACIÓN: Si necesita funciones como la compatibilidad con arrastrar y soltar en Internet Explorer, puede consultar la
pandell
bifurcación actualizada más recientemente dejquery-splendid-textchange
.fuente
2018, sin JQUERY
La pregunta es con JQuery, es solo para su información.
JS
HTML
fuente
Aquí hay otra versión (moderna) pero ligeramente diferente a las mencionadas anteriormente. Probado con IE9:
Para los navegadores obsoletos también puede agregar
selectionchange
ypropertychange
(como se menciona en otras respuestas). Peroselectionchange
no funcionó para mí en IE9. Por eso agreguékeyup
.fuente
Intenta hacerlo con foco
fuente
prueba esto ...
fuente
.delegate es el único que está trabajando para mí con la versión 2.1.1 de jQuery JavaScript Library
fuente
Después de experimentar un poco, se me ocurrió esta implementación:
Maneja los cambios en cualquier tipo de entrada y selecciona, así como las áreas de texto, ignorando las teclas de flecha y cosas como ctrl, cmd, teclas de función, etc.
Nota: solo he intentado esto en FF ya que es para un complemento FF.
fuente
Prueba esto
fuente
$("#textarea").on('change keyup paste', function() {})
y$('textarea').trigger('change');
puede abordar el problema que impidepaste
trabajar automáticamente.