0

我有一个带有文本字段和禁用的“保存”按钮的 GWT 表单。当用户开始在文本字段中输入任何内容时,我想启用“保存”按钮。然后单击“保存”按钮应该调用一些保存()代码。

我添加了

  1. ClickHandler 到 Save 按钮。
  2. “值更改处理程序”到文本字段以更新支持模型。不幸的是,它仅在字段丢失 FOCUS 时调用,所以我还必须添加:
  3. KeyPressHandler 到文本字段以在用户开始输入时启用保存按钮。

所以我开始在文本字段中输入(我看到 KeyPressHandler 被调用并且 Button 被启用),然后我点击“保存”。

此时 GWT 触发“焦点丢失”事件,我的值更改处理程序被调用并且支持模型得到更新。但是 ClickHandler 的事件丢失了!它根本没有被调用。我必须再次单击“保存”按钮,然后 save() 最终被调用。

4

1 回答 1

0

ValueChange 处理程序用于检测字段值的变化。

在您向文本字段提供您已完成在字段中输入并想要注册更改的手势之前,不会注册值更改。我相信这个手势要么是 CR,要么是失去焦点。

OTOH,您可能希望附加到文本字段的处理程序是 keyup 处理程序(http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/event/dom/client /KeyUpHandler.html ),以便在每次按键时,您的代码都可以检查刚刚输入的键的值。

但是,你为什么要这样做?为什么不继续使用值更改处理程序?无论如何,您必须将鼠标移出文本字段才能到达鼠标按钮。

于 2012-06-21T00:34:27.980 回答