我有一个用于获取金额的文本框,即 100 美元。
我的文本框已经有一个 $ 符号:
<g:TextBox ui:field="fee">$</g:TextBox>
我想要的是用户永远不能在我的文本框中删除/编辑 $ 符号,并且只能在 $ 符号之后输入金额,
这可能吗?
这应该使用事件工作
button.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
TextBox b = (TextBox)event.getSource();
if (!b.getValue().startsWith("$")) {
b.setValue("$" + b.getValue());
}
}
});
尽管基于 css 的解决方案应该看起来和性能更好:
在输入框上放一个带有 $ 符号的领结。
Label l = new Label("$");
TextBox b = new TextBox();
l.getElement().addClassName("dollarlabel");
b.getElement().addClassName("dollarinput");
RootPanel.get().add(b);
RootPanel.get().add(l);
和一些 CSS 样式
.dollarlabel {
position: relative;
float: left;
}
.dollarinput {
margin-left: -10px;
padding-left: 10px;
}