0

我尝试使用 DateBox 并将 valueChangeHandler 添加到 DateBox.getTextBox()。它在 FF、Chrome 中运行良好,但在 IE9 中运行良好。即使文本框中的值发生更改,也不会触发该事件。

我尝试在 IE9 中使用 TextBox.addValueChangeHandler(),它按预期工作。所以问题是我如何使 DateBox.getTextBox().addValueChangeHandler() 在 IE9 中工作。

任何人都可以确认这个错误吗?以及解决它的任何想法?

要测试的一小段代码:

 DateBox dateBox = new DateBox();
 RootLayoutPanel.get().add(dateBox);
 dateBox.getTextBox().addValueChangeHandler(new ValueChangeHandler<String>() {
   @Override
   public void onValueChange(ValueChangeEvent<String> event) {
      Window.alert("event fire"); 
  }
});

谢谢。

4

2 回答 2

0

这是一个已知的错误,它将在 GWT 2.6 中修复。

同时,您可以使用此解决方法:

dateBox.addValueChangeHandler(new ValueChangeHandler<Date>() {
    Date lastDate = null;
    @Override
    public void onValueChange(ValueChangeEvent<Date> arg0) {
    Date newDate = dateBox.getValue();
    newDate.setHours(0);
    newDate.setMinutes(0);
    newDate.setSeconds(0);

    if (!newDate.equals(lastDate))
    {
        lastDate = newDate;
        doSomething();
    }
}});

https://code.google.com/p/google-web-toolkit/issues/detail?id=4785

于 2013-10-21T21:23:24.687 回答
0

尝试这个 :

    transactionDate.addValueChangeHandler(new ValueChangeHandler<Date>() {
    public void onValueChange(ValueChangeEvent<Date> event) {
        Window.alert(transactionDate.getValue().toString());
    }
});
于 2013-03-31T17:07:31.580 回答