簡単です。入力をクリックするtype="submit"
と、フォームが送信されません。
この問題の解決策を検索しましたが、ネストされたフォームがあるかどうかを確認する必要があると言われていますが、使用していないのは 1 つだけです。また、タグの配置が間違っている可能性もあるとのことでしたが、HTML 全体を確認したところ、タグに問題はありませんでした。
HTMLに次のブロックがあります:
<div id="form-options-div" style="margin-top:10px;">
<input class="btn btn-primary" type="submit" wicket:id="saveClientButton" id="save-client-button" />
<input class="btn" type="button" id="close-client-button" wicket:id="closeClientButton"/>
</div>
AjaxButton
を表すために Java コードで を使用していsaveClientButton
ます。
をオーバーライドしていonSubmit(AjaxRequestTarget, Form<?>)
ます。Javaコード全体を投稿しますが、メソッドの開始時にロガーが呼び出されているかどうかを確認します:
logger.debug("ON SUBMIT");
したがって、メソッド内にはありません。onSubmit()
興味深いことに、AjaxButton メソッドではなくForm メソッドをオーバーライドすると、ページが実際にリロードされます。しかし、それだけです。onSubmit メソッドはまだ呼び出されていません。
なぜこうなった?
編集:
private Button saveClientBtn;
saveClientBtn = new AjaxButton(WICKET_ID_SAVE_CLIENT_BUTTON) {
@Override
public void onError() {
logger.debug("Error on submit...");
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
//code....
}
};
closeClientButton
通常の動作を妨げている可能性はありますか? button
ボタンの種類がではなくであるため、わかりませんsubmit
。
editClientForm = new Form<Client>(WICKET_ID_EDIT_CLIENT_FORM);
add(editClientForm);
editClientForm.add(saveClientBtn);
編集2:
OK、AjaxButton を使用する代わりに、FormonSubmit()
とをオーバーライドすることにしましたonError()
。ボタンをクリックすると、それonError()
が呼び出されていることがわかります。今、私はその理由を見つける必要があります。
OK、FeedbackPanel を配置しました。次のメッセージが表示されます。
'[Page class = EditClientPage, id = 6, render count = 1]' is not a valid EditClientPage.
また、エラーは次のように 4 回表示されます。
'[Page class = EditClientPage, id = 6, render count = 1]' is not a valid EditClientPage.
'[Page class = EditClientPage, id = 6, render count = 1]' is not a valid EditClientPage.
'[Page class = EditClientPage, id = 6, render count = 1]' is not a valid EditClientPage.
'[Page class = EditClientPage, id = 6, render count = 1]' is not a valid EditClientPage.
このエラーはどういう意味ですか?