0
當用戶在TextBox或TextArea中輸入數據時,我想用另一個(例如'B')替換特殊的輸入字符(例如'A')。我的代碼是象下面這樣:
GWT - 觸發本機KeyPressEvent不起作用?
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);
}
我覺得應該是OK(根據GWT文檔),但實際上它只是工作,直到event.preventDefault();
,其餘似乎忽略。我的意思是它只是刪除'A',但不會'B'。誰能告訴我原因?或任何其他解決方案?
謝謝。
瘋狂的猜測:你有沒有嘗試在'fireNativeEvent'之後移動'preventDefault'? –
@Darthenius你的猜測會導致Firefox崩潰。我改變了嘗試實施編輯器操作的方式。我的意思是在按鍵上,而不是發射新的事件,我得到文本框的值('getValue()'),用新的字符替換輸入的字符並調用'setValue()'。謝謝。 – Hamzeh