2010-05-11 29 views
5

Tengo un TextBox en un Panel y deseo recibir una notificación cuando cambie el valor de 'TextBox'.GWT TextBox - Notificación de cambios de valores durante la edición

me han tratado los siguientes controladores de eventos:

  • ChangeHandler
  • ValueChangeHandler
  • KeyPresshandler

Mi problema es que el único fuego ValueChangeHandler y ChangeHandler cuando el foco deja a los controles. El KeyPressHandler se dispara correctamente, pero antes de que el TextBox haya visto el evento, lo que significa que una llamada al getText() de mi controlador de eventos ve un valor obsoleto.

¿Hay un evento que funcionaría exactamente igual KeyPressHandler pero después de ser despedido la TextBox ha visto el evento?

EDIT: este comportamiento se observa en Chrome y IE8 en Windows XP

+0

Mismo comportamiento visto en Linux/Firefox 3.6.8. –

+0

Relacionados [Controlador de cambio de valor instantáneo en un cuadro de texto GWT] (http://stackoverflow.com/questions/3184648/instant-value-change-handler-on-a-gwt-textbox) – Jla

Respuesta

7

Prueba el KeyUpHandler.

+0

Maldita sea, pásamela;) –

+0

Tengo un "amigo" que también lo buscó durante horas;) –

+2

Esto no funcionará si el usuario copia y pega. – Jla

1

Una solución muy robusta (aunque no muy elegante) que capta TODOS los cambios incluyendo copia/pastilla vía mouse o sugerencias de texto insertadas a través de un teclado virtual (por ejemplo, el teclado ios 8) es iniciar un temporizador en foco y verifica el valor del cuadro de texto en un intervalo de tiempo apropiado. El temporizador se detiene al desenfocar (no olvide hacer una comprobación final de desenfoque).

No conozco ninguna solución "basada en controlador" para captar todos los cambios del cuadro de texto.

Cuestiones relacionadas