我在GWT创建表和列的一个包含有输入细胞。 我想获得信息时,文字输入的变化。 在我的手机我重载render()
和onBrowserEvent()
方法。 下面的代码:
public HourPickerCell() {
super("change", "keyup");
}
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
if (value == null) {
return;
}
sb.appendHtmlConstant("<input class=\"hourPicker\" type=\"text\" value=\"" + value + "\"></input>");
}
@Override
public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
System.out.println(event.getType());
super.onBrowserEvent(context, parent, value, event, valueUpdater);
if (event.getType().equals("change")) {
EventTarget eventTarget = event.getEventTarget();
if (!Element.is(eventTarget)) {
return;
}
if (parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) {
InputElement input = (InputElement) parent.getFirstChild();
valueUpdater.update(input.getValue());
}
}
}
正如你可以看到我试图抓住change
事件。 一切是在Firefox和Chrome确定。 当我写输入一些东西,标签到其他细胞,我得到在控制台以下结果:
keyup keyup keyup keyup keyup keyup keyup change keyup
事件之一是“改变” - 这正是我需要的。 可惜的是在Internet Explorer上我只得到:
keyup keyup keyup keyup keyup keyup keyup
没有变化的事件。 谁能告诉我问题出在哪里? 有没有什么办法解决?