很简单,我单击具有 的输入,type="submit"
但未提交表单。
我已经搜索了这个问题的解决方案,但他们说我应该检查我是否有嵌套表单,我没有,我只使用一个。他们还说这可能是一些放错位置的标签,但我已经浏览了整个 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");
所以它不在方法内部。有趣的是,当我重写 FormonSubmit()
方法而不是 AjaxButton 方法时,页面实际上会重新加载。但仅此而已,仍然没有调用 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:
好的,我决定不使用 AjaxButton,而是覆盖 FormonSubmit()
和onError()
. 单击按钮时,我看到它onError()
被调用。现在我需要找出原因。
好的,我放了一个反馈面板。它给了我以下信息:
'[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.
这个错误是什么意思?