我正在为我的gwt项目使用gwt和gwtbootstrap3。我的代码看起来像
<b:NavbarForm pull="LEFT">
<b:TextBox placeholder="Search" addStyleNames="col-lg-8"/>
</b:NavbarForm>
现在,如果我在文本框中键入任何内容并按Enter键,gwt将重新加载整页,我不想要,我想要的是从文本框中获取值并调用方法。有什么方法可以实现这一点。
仅供参考,如果我不使用NavbarForm,我可以获取该值但是我不能使搜索框内联。
http://gwtbootstrap3.github.io/gwtbootstrap3-demo/#navbar
仅供参考,如果我将文本框包装在NavbarText或NavbarNav等其他容器中,那么UI就会被破坏。
答案 0 :(得分:1)
这可能是gwtbootstrap3中的一个错误 - 他们最近对Form小部件进行了大修。
但就目前而言,您可以向SubmitHandler
添加NavbarForm
并取消SubmitEvent
以阻止其重新加载页面:
navbarForm.addSubmitHandler(new SubmitHandler() {
@Override
public void onSubmit(SubmitEvent event) {
event.cancel();
}
});
使用UiBinder时:
@UiHandler("navbarForm")
void onNavbarSubmit(SubmitEvent event) {
event.cancel();
}
请注意,在这种情况下,SubmitEvent
的类型为org.gwtbootstrap3.client.ui.base.form.AbstractForm.SubmitEvent
,不是 com.google.gwt.user.client.ui.FormPanel.SubmitEvent
。