1
itemBox.addKeyUpHandler(new KeyUpHandler()
{
public void onKeyUp(KeyUpEvent event)
{
String currentValue = itemBox.getValue().trim();
// handle backspace
if(event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE)
{
if("".equals(currentValue))
{
doTheJob();
}
}
}
});
預計行爲: 當文本框爲空時,我點擊刪除,將運行doTheJob();如何在點擊刪除鍵之前獲取上一個文本框的值?
當前行爲: 當有一個字符時,我點擊刪除,它會觸發doTheJob();
換句話說,有沒有什麼辦法可以在我點擊刪除鍵之前獲得文本框內容? 我試圖用var來保存最後一個值,但它需要註冊另一個偵聽器,並且impl不是那麼有效。
感謝您的輸入。
////////////////////編輯//////////////////////
使用KeyDownHandler確實解決了上述問題,然而導致另一個問題: 我使用itemBox.setValue(「」);清除文本框,但它將始終有一個逗號。
itemBox.addKeyDownHandler(new KeyDownHandler()
{
public void onKeyDown(KeyDownEvent event)
{
// handle backspace
if(event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE)
{
String currentValue = itemBox.getValue().trim();
if("".equals(currentValue))
{
doTheJob();
}
}
// handle comma
else if(event.getNativeKeyCode() == 188)
{
doOtherJob();
//clear TextBox for new input
itemBox.setValue("");
itemBox.setFocus(setFocus);
}
}
});
你用'onKeyDown'事件試過了嗎? – 2012-07-25 10:38:33
你是什麼意思你點擊刪除?那是一個按鈕?因爲你正在爲文本框設置一個鍵處理程序,它將「doTheJob()」...如果命中刪除是一個按鈕操作,那麼從文本框中刪除處理程序並將其添加到按鈕onClickHandler()並檢查文本框是否爲空。 textBox.isEmpty()。 – 2012-07-25 10:48:06
對不起,混亂,刪除是「Del」鍵盤鍵,我已經在標題中說過。 – Mike 2012-07-25 11:18:17