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