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

Submit form without refreshing page using gwt and gwtbootstrap3

我正在为我的 gwt 项目使用 gwt 和 gwtbootstrap3。我的代码看起来像

  <b:NavbarForm pull="LEFT">
      <b:TextBox placeholder="Search" addStyleNames="col-lg-8"/>
    </b:NavbarForm>

现在,如果我在文本框中键入任何内容并按回车键,gwt 将重新加载整个页面,这是我不想要的,我只想从文本框中获取值并调用一个方法。有什么办法可以做到这一点。

仅供参考,如果我不使用 NavbarForm 我可以获取该值,但我无法使搜索框内联。

http://gwtbootstrap3.github.io/gwtbootstrap3-demo/#navbar

仅供参考,如果我将文本框包装在 NavbarText 或 NavbarNav 等其他容器中,则 UI 损坏。

这可能是 gwtbootstrap3 中的一个错误 - 他们最近对表单小部件进行了大修。

但是现在,您可以将 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