2012-07-04 21 views
0

在我的形式我只是有一个字段没有扣子:如何创建AjaxFormSubmitBehavior

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) { 
      } 
     })); 

问题是,当我提交这份表格(只写单词,然后按回车)没有任何反应。哪里不对 ?

+0

你有你的表单覆盖的submit()吗?它应该叫。 – bert

+0

onFormSubmitted是最终的方法,我不能覆盖它 – hudi

+0

使用onSubmit()不onFormSubmitted()。您需要的只是表单中的。不需要在java中添加一个SubmitLink。只需在html中,并覆盖形式为 – bert

回答

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中的提交元素,并查看它是否有效。

+1

你不需要提交按钮。 –

1

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

+0

我尝试将此行为添加到窗体,但仍然不工作 – hudi

+0

你有一个提交按钮附加到您的表单?因为当你点击返回键时,浏览器会尝试查找附加到表单的第一个提交按钮,并调用此按钮的提交操作。 – magomi

+0

nope我没有 – hudi