He examinado muchas otras preguntas y he encontrado respuestas muy simples, incluido el código a continuación. Simplemente quiero detectar cuándo alguien cambia el contenido de un cuadro de texto, pero por alguna razón no funciona ... No obtengo errores de consola. Cuando establezco un punto de interrupción en el navegador en la change()
función, nunca lo alcanza.
$('#inputDatabaseName').change(function () {
alert('test');
});
<input id="inputDatabaseName">
Respuestas:
Puede usar el
input
evento Javascript en jQuery así:En JavaScript puro:
O así:
fuente
pruebe keyup en lugar de cambiar.
Aquí está la documentación oficial de jQuery para .keyup () .
fuente
A cada respuesta le faltan algunos puntos, así que aquí está mi solución:
Los
Input Event
incendios en la entrada del teclado , el arrastre del mouse , el autocompletado y el copiar y pegar se probaron en Chrome y Firefox. Verificar el valor anterior hace que detecte cambios reales, lo que significa no disparar al pegar lo mismo o al escribir el mismo carácter, etc.Ejemplo de trabajo: http://jsfiddle.net/g6pcp/473/
actualizar:
Y si desea ejecutar su
change function
solo cuando el usuario termina de escribir y evita disparar la acción de cambio varias veces, puede intentar esto:Si el usuario comienza a escribir (por ejemplo, "foobar"), este código evita
change action
que se ejecute para cada letra que escribe el usuario y solo se ejecuta cuando el usuario deja de escribir, esto es especialmente útil cuando envía la entrada al servidor (por ejemplo, buscar entradas), que servidor de manera que lo hace sólo una búsqueda defoobar
y no seis búsquedas paraf
y luegofo
y luegofoo
yfoob
etcétera.fuente
$("#input").focusout(function () {})
. Cuando haces clic fuera de tu entrada, el evento se dispara. Funciona en la versión actual de Chrome y Firefox, y IE9$("#input").on("input focusout",function(e){
Las entradas de texto no activan el
change
evento hasta que pierden el foco. Haga clic fuera de la entrada y se mostrará la alerta.Si la devolución de llamada se dispara antes de que la entrada de texto pierda el foco, use el
.keyup()
evento.fuente
change
está trabajando aquí: jsfiddle.net/g6pcp ;keyup
alerta después de cada tecla que no es una buena maneraalert()
. Hará la depuración mucho más fácil.onkeyup, onpaste, onchange, oninput
parece estar fallando cuando el navegador realiza el autocompletado en los cuadros de texto. Para manejar este caso, incluya "autocomplete='off'
" en su campo de texto para evitar que el navegador complete automáticamente el cuadro de texto,P.ej,
fuente
En mi caso, tenía un cuadro de texto adjunto a un selector de fechas. La única solución que funcionó para mí fue manejarlo dentro del evento onSelect del selector de fechas.
fuente
Creo que también puedes usar
keydown
:fuente
TRABAJANDO:
fuente