trigger tablas event ejemplos ejemplo change javascript jquery checkbox click

javascript - tablas - onchange jquery input text



Cuál es la diferencia entre.click y.change en una casilla (5)

Esta pregunta ya tiene una respuesta aquí:

Estaba buscando agregar un evento a una casilla de verificación y pensé que la gente usaría .change para configurar un evento de cambio, pero descubrí que las personas están usando .click

¿Hay alguna razón para esto? Ambos parecen funcionar bien con eventos cliqueados y con cambios de teclado. ¿Me estoy perdiendo de algo?

Si no me crees, pruébalo tú mismo


.change no funciona correctamente para al menos algunos navegadores populares en relación con los cambios de tecla (la opción de selección de usuario con las teclas de flecha arriba / abajo) pero luego .click tampoco lo supera. Algunas veces el uso de keyup o keydown o algo se usa junto con .change para superar este problema, sin embargo, comienza a ser un poco complicado cuando el usuario tabula el documento ya que puede desencadenar el evento clave si no se maneja explícitamente en la devolución de llamada. Con todo, es una lástima que .change no funcione como era de esperar ya que resolvería problemas que consumen mucho tiempo.


Ambos pueden activar un cambio en el valor por defecto, pero puede anular la lógica onClick para NO cambiar el valor de un chackbox. Puede cambiar el valor a través de otro punto de entrada. Por lo tanto, es necesario tener un clic y un cambio.

editar - También estoy de acuerdo con el Dr. Rob


Dos razones por las que se prefiere hacer onchange en lugar de onchange .

  1. Internet Explorer solo activa el evento onchange cuando la casilla de verificación pierde el foco (onblur). Entonces onclick es más una solución de navegador cruzado.

  2. onchange ocurre solo después de que el elemento pierde el foco. (No verá una diferencia ya que está llamando alerta y perdiendo el foco en cada cambio). El pseudo código en MDC element.onchange explica la implementación de element.onchange .

    control.onfocus = focus; control.onblur = blur; function focus () { original_value = control.value; } function blur () { if (control.value != original_value) control.onchange(); }


sí ambos funcionan, solo haga clic en no ver el cambio de objeto real (como una casilla de verificación que se marca), cambiar hace.

Técnicamente es más confiable pero en la práctica ambos funcionan.


onchange en IE solo se dispara cuando la casilla de verificación pierde el foco. Por lo tanto, si lo tabula, pulse espacio unas cuantas veces, tab out, solo obtendrá un evento onchange , pero varios eventos onclick .

Nota: este es uno de los tiempos muy, muy raros cuando el comportamiento de IE es correcto (según las especificaciones) y otros navegadores están equivocados.