我认为这可能很简单,但却吞噬了我的时间。
我在我的JAVA应用程序中使用TextItem在GWT中获取用户的价格输入。
我试图停止在文本项上允许多个点(“。”)。我的所有运动都失败了。 我正在使用正则表达式;尝试处理TextItem的BlurHandler事件上的关键字符都拖了我一个错误。
有人可以帮我实现上述目标吗? 先感谢您。
答案 0 :(得分:0)
我使用的是这样的东西:
amount = new TextBox();
amount.setVisibleLength(10);
amount.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if (!checkNumeric(amount.getText(), event.getCharCode()))
amount.cancelKey();
}
});
public boolean checkNumeric(String text, char keycode) {
if (!Character.isDigit(keycode) && keycode != '.' && keycode != '-'
&& keycode != KeyCodes.KEY_BACKSPACE
&& keycode != KeyCodes.KEY_TAB) {
return false;
}
if (keycode == '-') {
if (!text.isEmpty()) {
return false;
}
}
if (keycode == '.') {
if (text.contains(".")) {
return false;
}
}
return true;
}