1

在 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'一样工作

4

0 回答 0