- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在重写 GWT TextInputCell.onBrowserEvent()
方法,以尝试对在字段中输入的字符应用过滤。我如何无法获取用户在 keydown
事件中输入的实际字符?
我可以使用 NativeEvent.getKeyCode()
方法来获取按键代码,但这还不够,因为我想知道他们输入的特定字符,因此我可以将该字符与普通 express 。据我了解, keyCode 只是告诉我他们在键盘上键入的键,所以我无法区分大写“A”和小写“a”。我还可以在 keyup
事件上从 InputElement
获取值,但这已经太晚了,因为角色已经渲染到 UI 元素。
当我调用 NativeEvent.getCharCode()
时,它会为我输入的任何字符返回 0。我在 Chrome 和 Firefox 上尝试过这个。为什么getCharCode()
总是返回0?这是一个错误吗?
例如,以下是我尝试过的方法以及在键盘上输入数字“1”时得到的值:
event.getKeyCode() - 49
event.getCharCode() - 0
Character.toChars(event.getCharCode())[0] - (a box character because charCode was 0)
String.valueOf(Character.toChars(event.getCharCode())) - (a box character because charCode was 0)
String.valueOf((char) event.getKeyCode()) - 1
好的,所以我发现我需要捕获 keypress
事件而不是 keydown
,但我打印了每个 event.getType()
我键入时发生的每个事件的值,但我从未看到触发过任何 keypress
事件。所以我更新的问题是,为什么 keypress
事件没有发生?如果我无法在 TextInputCell.onBrowserEvent()
方法中捕获它,是否有其他方法为 TextInputCell
捕获它。
最佳答案
事实证明,AbstractCell 采用了表示“consumedEvents”的字符串列表。这基本上限制了子单元类可以处理的事件类型。 TextInputCell 传入change 和keyup 事件类型。 AbstractInputCell 添加了焦点、模糊和按键功能。因此,TextInputCell 无法处理按键 native 事件。
我最终在自己的项目中创建了 TextInputCell 的近乎精确的副本,并将按键类型添加到构造函数中。然后我就能够捕获事件并进行我想做的过滤。我将在 GWT 中创建一个请求,将此功能添加到 TextInputCell 中。
我还创建了一个功能请求以将此功能添加到 GWT:http://code.google.com/p/google-web-toolkit/issues/detail?id=5891
关于java - 为什么按键事件没有发送到 GWT 的 TextInputCell.onBrowserEvent() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738583/
我在我的应用程序上使用 SmartGWT,并且在尝试从浏览器获取事件时遇到了一些问题。我需要获取 ONPASTE 事件,但是当我尝试使用它时,onBrowserEvent 方法甚至从未被调用。 这是我
在gwt单元格表列中,我创建了一个SafeHtmlCell类型的列。在里面我重写了getvalue()和onBrowserEvent()方法。但是当我单击该列时,它不会触发事件。请参阅下面的 @Ov
问题: 我正在重写 GWT TextInputCell.onBrowserEvent() 方法,以尝试对在字段中输入的字符应用过滤。我如何无法获取用户在 keydown 事件中输入的实际字符? 我尝试
如何从 Javascript 以编程方式调用 EditTextCell 的 onBrowserEvent? 我在我的 customEditTextCell 中覆盖了 onBrowserEvent,它在
我是一名优秀的程序员,十分优秀!