1

我正在为我的 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 已损坏。

4

1 回答 1

1

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

SubmitHandler但是现在,您可以添加 aNavbarForm并取消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

于 2015-02-18T08:46:25.613 回答