很簡單,我點擊具有type="submit"
的輸入,並且未提交表單。Apache Wicket - 未提交表格
我已經搜索了這個問題的解決方案,但他們說我應該檢查我是否有嵌套窗體,我不這樣做,我只使用一個窗體。他們還表示這可能是一些錯位的標籤,但我已經瀏覽了整個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>
我在Java代碼中使用AjaxButton
代表saveClientButton
。我想覆蓋onSubmit(AjaxRequestTarget, Form<?>)
。我會後整個Java代碼,但我有一個記錄在方法的開始,看看它被稱爲:
logger.debug("ON SUBMIT");
所以它不是方法中。有趣的是,當我重寫表單onSubmit()
方法而不是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,我決定重寫形式onSubmit()
和onError()
。點擊按鈕時,我看到onError()
被調用。現在我需要找到原因。
好的,我把一個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.
這個錯誤的含義是什麼?
你有沒有覆蓋按鈕上的onError()以查看你是否達到了它?順便說一句,Wicket通過用div代替內部窗體來處理嵌套窗體(這在HTML中是不允許的)。 – bert
@bert我試着重寫並放置一個日誌...但它沒有被調用。此外我再次檢查,沒有嵌套的形式。我在這個問題上瘋了......我希望它不是愚蠢的,我只是看不到它。 –
您是否添加了FeedbackPanel? – svenmeier