0

在我的表单中,我只有一个没有按钮的字段:

add(new AutoCompleteTextField<String>("hladaneSlovo", settings) {
            private static final long serialVersionUID = 1L;

            @Override
            protected Iterator<String> getChoices(String input) {
                return new HladaneSlova().iterator();
            }
        }.add(new AjaxFormSubmitBehavior(this, "onsubmit") {
            private static final long serialVersionUID = 1L;

            @Override
            protected void onSubmit(AjaxRequestTarget target) {
                setResponsePage(new VyjimkyPage(parametry));
            }

            @Override
            protected void onError(AjaxRequestTarget target) {
            }
        }));

问题是当我提交这个表格时(只写单词然后按回车)没有任何反应。怎么了 ?

4

2 回答 2

1

您应该将 AjaxFormSubmitBehavior 添加到表单,而不是将其添加到文本字段。

于 2012-07-04T08:23:26.270 回答
1

我之前的评论作为答案:不需要 AjaxFormSubmitBehavior。您需要覆盖表单中的 onSubmit() :

Form form = new Form("form") {

   @Override
   public void onSubmit() {
      // do your stuff
   }

   @Override
   public void onError() {
      // you get here in case of errors (conversion/validatio)
   }
}
add(form);

form.add(...)

我不是 100% 确定您的表单上需要一个按钮。如果你需要一个 html:

<form wicket:id="form">
   <input type="text" wicket:id="yourAutoComplete">
   <input type="submit" value="submit">
</form>

您不需要将提交输入元素连接到 java 组件。但是您可以尝试不使用 html 中的提交元素,看看它是否有效。

于 2012-07-04T20:09:37.877 回答