Valeur instantanée de changement de gestionnaire sur une GWT zone de texte
Je voudrais mettre à jour un champ de texte instantanément lors de la saisie dans une GWT zone de texte. Mon problème est que ValueChangeEvent et ChangeEvent gestionnaires déclenche uniquement lorsque la zone de texte perd le focus. J'ai pensé à utiliser l'événement keypressevent mais ensuite rien ne se passe lorsque vous effectuez un copier-coller avec la souris.
Quelle est la façon la plus simple de le faire ?
Vous devez vous connecter pour publier un commentaire.
Vous pourriez attraper la
ONPASTE
événement et manuellement feu unValueChangeEvent
. Quelque chose comme ceci:Testé sur firefox 3.6.1.
TextBox
jusqu'à la validation se fait. C'est vraiment un hack maiscolor: transparent
ferait l'affaire...onBrowserEvent()
.Comme une solution générale, ce qui fonctionne pour moi (merci à gal-bracha commentaire):
Généralement, GWT n'ayant pas de classes pour gérer les événement d'entrée (décrit ici
et ici). Nous avons donc besoin de la mettre en œuvre par nous-mêmes:
Classe de gestionnaire:
Classe d'événement:
Utilisation:
Il fonctionne sur tous les TextBox de changement de valeur, y compris le collage à l'aide du menu contextuel. Il ne réagit pas sur les flèches, la touche ctrl, maj, etc...
Cela a été un problème majeur pour moi dans le passé. Le keyupHandler pas travailler parce que le copier coller nécessite une deuxième touche appuyez sur l'option coller qui ne déclenche pas l'événement. le meilleur que j'ai pu faire est d'utiliser l'ancien changelistener pas l'idéal, mais ça fonctionne.
Pourquoi ne pas utiliser la combinaison de deux KeyUpHandler et une fonction changehandler sur la zone de texte?
Doit prendre soin de rétroaction immédiate sur chaque frappe de touche ainsi que des copier coller cas.
Fait un peu de bidouille et il a travaillé pour moi.
Vous pouvez utiliser KeyUpHandler, mais l'utiliser avec d'autres si le bloc qui vérifie
pour la longueur de la zone de texte. Si la longueur de la zone de texte est > 0, faire ton truc.
Ex:
Je préfère utiliser
Elements
queWidgets
donc ce ma façon de gestionnaire.