GWT-触发本机按键事件不会';不行?
当用户在文本框或文本区域中输入数据时,我想用另一个字符(例如“B”)替换输入的特殊字符(例如“a”)。我的代码如下:GWT-触发本机按键事件不会';不行?,gwt,Gwt,当用户在文本框或文本区域中输入数据时,我想用另一个字符(例如“B”)替换输入的特殊字符(例如“a”)。我的代码如下: public void onKeyPress(KeyPressEvent event) { if (event.getNativeEvent().getCharCode() == 65 /*for 'A'*/){ event.preventDefault(); NativeEvent event1
public void onKeyPress(KeyPressEvent event) {
if (event.getNativeEvent().getCharCode() == 65 /*for 'A'*/){
event.preventDefault();
NativeEvent event1 =
Document.get().createKeyPressEvent(false, false, false, false, 66 /* for 'B'*/);
DomEvent.fireNativeEvent(event1, theTextBox);
}
我认为它应该是可以的(根据GWT文档),但实际上它只在
event.preventDefault()之前工作代码>,其余的似乎被忽略了。我的意思是它只是删除了“A”,但没有为“B”开火。谁能告诉我原因吗?还是其他解决方案
谢谢。尝试从按键处理程序
切换到按键处理程序
public void onKeyDown(KeyDownEvent event) {
if( event.getNativeKeyCode() == 65 ) {
//do the character replacement here
}
}
希望它能对您有所帮助。胡乱猜测:您是否尝试过在fireNativeEvent
之后移动preventDefault
?@Darthenius您的猜测导致Firefox崩溃。我改变了尝试实现编辑器操作的方式。我的意思是,在按键时,我不触发新事件,而是获取文本框值(getValue()
),将输入的字符替换为新字符,然后调用setValue()
。谢谢