在 IE 中,当“KeyPress”事件未调用导航键时,但在 FF 中它正在触发“KeyPress”事件,如何停止此操作。我正在使用带有 KeyPress 事件的 Gxt 'TextField',如下所示
firstNameField.addListener(Events.KeyPress, getKeyPressListener());
private Listener<FieldEvent> getKeyPressListener(){
return new Listener<FieldEvent>() {
public void handleEvent(FieldEvent be) {
char key = getChar(be.getEvent());
if (!((key+"").matches("^[A-Za-z \\'\\-\\&]+$"))) {
be.stopEvent();
}
}
// needed due to GWT 2.1 changes
private native char getChar(NativeEvent e) /*-{
return e.which || e.charCode || e.keyCode || 0;
}-*/;
};
}
我已经配置了一些正则表达式,它只允许用户输入“A-Za-z”、“-”和“&”,除了这些值之外,它会阻止用户输入。
此代码在 IE 中运行良好,因为它不会在导航键按下时触发“KeyPress”事件,但是当涉及到 FF 时,“KeyPress”事件会在每次按键时触发。所以让'FF'像'IE'一样工作