0

私のフォームでは、ボタンのないフィールドが1つだけあります。

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

問題は、このフォームを送信しても(単語を入力してEnterキーを押すだけ)何も起こらないことです。なにが問題ですか ?

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>

submit 入力要素を Java コンポーネントに接続する必要はありません。ただし、html の submit 要素なしで試してみて、それが機能するかどうかを確認できます。

于 2012-07-04T20:09:37.877 に答える