2010-05-11 11 views
5

Ho unPanel e desidero ricevere una notifica quando il valore di "TextBox" cambia.Casella di testo GWT: notifica delle modifiche apportate al valore durante la modifica

ho provato i seguenti gestori di eventi:

  • ChangeHandler
  • ValueChangeHandler
  • KeyPresshandler

mio problema è che il ValueChangeHandler e ChangeHandler fuoco solo quando il focus lascia i controlli. I KeyPressHandler incendi correttamente, ma prima che il TextBox in sé ha visto l'evento, il che significa che una chiamata a getText() dal mio gestore di eventi vede un valore di stantio.

C'è un evento che avrebbe funzionato esattamente come KeyPressHandler ma essere licenziato dopo il TextBox ha visto l'evento?

EDIT: questo comportamento è visto in Chrome e IE8 su Windows XP

+0

Stesso comportamento visto su Linux/Firefox 3.6.8. –

+0

Correlati [Gestore di modifica del valore istantaneo su un GWT TextBox] (http://stackoverflow.com/questions/3184648/instant-value-change-handler-on-a-gwt-textbox) – Jla

risposta

7

Prova il KeyUpHandler.

+0

Dannazione, bastonatemi;) –

+0

Ho un "amico" che lo ha cercato anche per ore;) –

+2

Questo non funzionerà se l'utente copia-incolla. – Jla

1

Una soluzione molto robusta (anche se non molto elegante) che cattura TUTTE le modifiche tra cui copia/pastoso tramite mouse o suggerimenti di testo inseriti tramite una tastiera virtuale (ad esempio la tastiera ios 8) per avviare un timer a fuoco e controlla il valore della casella di testo in un intervallo di tempo appropriato. Il timer si ferma su sfocatura (non dimenticare di eseguire un controllo finale su sfocatura).

Non sono a conoscenza di alcuna soluzione basata su "gestore" per catturare tutte le modifiche alle caselle di testo.

Problemi correlati