使用gwt和gwtbootstrap3提交表单而不刷新页面

时间:2015-02-17 22:19:35

标签: gwt gwtbootstrap3

我正在为我的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就会被破坏。

1 个答案:

答案 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