<select>
tiene esta API ¿Qué hay de <input>
?
174
Puedes usar .change()
$('input[name=myInput]').change(function() { ... });
Sin embargo, este evento solo se activará cuando el selector haya perdido el foco, por lo que deberá hacer clic en otro lugar para que funcione.
Si eso no es lo más adecuado para usted, puede usar algunos de los otros eventos de jQuery como keyup , keydown o keypress , dependiendo del efecto exacto que desee.
change
solo se disparará cuando el elemento de entrada haya perdido el foco. También existe elinput
evento que se activa cada vez que el cuadro de texto se actualiza sin necesidad de perder el foco. A diferencia de los eventos clave, también funciona para pegar / arrastrar texto.change
no es compatible con IE9, puede usarfocusout
para tener el mismo comportamientoComo @pimvdb dijo en su comentario:
(Ver documentación ).
Esto es muy útil, vale la pena ponerlo en una respuesta. Actualmente (v1.8 *?) No hay conveniencia .input () fn en jquery, por lo que la forma de hacerlo es
fuente
$('form').on('change input', function);
fue el truco para mí. Gracias.Sugeriría usar el evento de keyup algo como a continuación:
Hay algunas formas de lograr el mismo resultado, así que supongo que depende de las preferencias y depende de cómo quieras que funcione exactamente.
Actualización: esto solo funciona para la entrada manual, no para copiar y pegar.
Para copiar y pegar, recomendaría lo siguiente:
fuente
Aquí está el código que uso:
Esto funciona bastante bien, particularmente cuando se combina con un
jqGrid
control. Simplemente puede escribir en un cuadro de texto e inmediatamente ver los resultados en sujqGrid
.fuente
Hay una y solo una forma confiable de hacer esto , y es al extraer el valor en un intervalo y compararlo con un valor almacenado en caché.
La razón por la cual esta es la única forma es porque hay varias formas de cambiar un campo de entrada usando varias entradas (teclado, mouse, pegar, historial del navegador, entrada de voz, etc.) y nunca puede detectarlas todas usando eventos estándar en una cruz. -ambiente del navegador.
Afortunadamente, gracias a la infraestructura de eventos en jQuery, es bastante fácil agregar su propio evento inputchange. Lo hice aquí:
Úselo como:
$('input').on('inputchange', function() { console.log(this.value) });
Hay una demostración aquí: http://jsfiddle.net/LGAWY/
Si tiene miedo de varios intervalos, puede vincular / desvincular este evento en
focus
/blur
.fuente
$('body').on('inputchange', 'input', function() { console.log(this.value) });
:? O no, como se menciona aquí: github.com/EightMedia/hammer.js/pull/98 ?Recomiendo usar
this
palabras clave para obtener acceso a todo el elemento para que pueda hacer todo lo que necesita con este elemento.fuente
Lo siguiente funcionará incluso si se trata de llamadas dinámicas / Ajax.
Guión:
Html,
Espero que este código de trabajo ayude a alguien que está intentando acceder dinámicamente / llamadas Ajax ...
fuente
fuente
Podrías simplemente trabajar con la identificación
fuente
Puede hacer esto de diferentes maneras, keyup es una de ellas. Pero estoy dando un ejemplo a continuación con el cambio.
NB: input [name = "vat_id"] reemplaza con tu ID o nombre de entrada .
fuente
Si desea activar el evento mientras escribe , use lo siguiente:
Si desea activar el evento al salir del campo de entrada , use lo siguiente:
fuente
$(document).on('change', 'input[name=myInput]', function() { ... });
fuente
Esto funcionó para mí. Si el campo con el nombre FIELDA se hace clic o cualquier tecla entró actualiza campo con id FIELDB .
fuente
Podrías usar
.keypress()
.Por ejemplo, considere el HTML:
El controlador de eventos puede vincularse al campo de entrada:
Estoy totalmente de acuerdo con Andy; todo depende de cómo quieras que funcione.
fuente