GWT本机事件不提供预期行为
我有一个文本小部件,我想让enter事件像tab事件一样工作。因此,我捕获了按键事件并引发了一个tab本机事件 但是,选项卡行为不会反映在应用程序中。事件处理程序的代码是GWT本机事件不提供预期行为,gwt,gwt2,Gwt,Gwt2,我有一个文本小部件,我想让enter事件像tab事件一样工作。因此,我捕获了按键事件并引发了一个tab本机事件 但是,选项卡行为不会反映在应用程序中。事件处理程序的代码是 public void onKeyPress(KeyPressEvent event) { int keyCode = event.getNativeEvent().getKeyCode(); if (keyCode == KeyCodes.KEY_ENTER) {
public void onKeyPress(KeyPressEvent event) {
int keyCode = event.getNativeEvent().getKeyCode();
if (keyCode == KeyCodes.KEY_ENTER) {
NativeEvent nativeEvent =
Document.get().
createKeyPressEvent(false,false,false,false,KeyCodes.KEY_TAB );
DomEvent.fireNativeEvent(nativeEvent, this, this.getElement());
}
当我将不推荐使用的createKeyPressEvent与更多参数一起使用时,它会触发tab事件,但其行为与tab按键不同,即移动到下一个小部件。新代码与createKeyPress事件行中的上述代码不同
如下
NativeEvent nativeEvent =
Document.get().
createKeyPressEvent(false,false,false,false,
KeyCodes.KEY_TAB ,KeyCodes.KEY_TAB);
请注意,手动触发事件
不生成默认操作
与该事件有关。对于
例如,手动触发焦点事件
不会导致元素接收
焦点(必须使用其焦点方法
为此,请手动启动submit
事件不提交表单(使用
提交方法),手动启动一个键
事件不会导致该信件被删除
出现在焦点文本输入中,并且
手动触发一个点击事件
链接不会导致链接被删除
在UI的情况下激活等
事件,这对安全性很重要
原因,因为它阻止脚本
模拟交互的用户操作
使用浏览器本身
来自。你说得对。现在我改变了我的处理方式。按下enter键后,我通过代码控制焦点,这类似于tab事件的操作。执行工作也在更高的层次上进行。