通常,在TextField失去焦点(模糊)后会触发Change事件。
但是我需要它在字段的值发生变化时立即触发,而不需要失去对该字段的关注。
KeyListener不会剪切它,因为该值可能来自条形码扫描仪。
有没有办法实现这个目标?
提前致谢!
答案 0 :(得分:1)
我没有使用ext-gwt,但这是你必须要做的:你必须使用KeyListener并为ONPASTE添加一个监听器。 “更改”事件由浏览器提供,仅在焦点消失(模糊期间)以及文本已更改时触发。
答案 1 :(得分:0)
我认为没有一个事件适用于所有情况的跨浏览器。因此,“穷人的解决方案”是每隔一秒左右轮询文本字段。事实上,这样的测试可以很快完成,如果你不在同一时间在很多文本字段中使用它,你应该没问题。
如果你愿意,你可以使用我的小例子代码(它适用于普通的GWT TextBox,但它应该很容易适应Ext-GWT TextField)
@Override
public void onModuleLoad() {
final TextBox textBox = new TextBox();
final int delayMilliseconds = 1000;
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
private String previousValue = "";
@Override
public boolean execute() {
final String newValue = textBox.getValue();
if (!previousValue.equals(newValue)) {
try {
valueChanged();
} finally {
previousValue = newValue;
}
}
return true;
}
private void valueChanged() {
// React on the change
Window.alert("Value changed");
}
}, delayMilliseconds);
RootPanel.get().add(textBox);
}