[英]Getting Wicket AjaxButton to work with Browser autocomplete
我有一個帶有輸入字段,標簽和一個ajax按鈕的表單。 我想根據ajax請求更改標簽的值,並且我希望文本字段通過瀏覽器自動完成功能記住輸入的值。 基本結構基於瀏覽器的本機自動完成功能,用於動態生成的表單(使用Ajax處理)
通過Enter和Button提交時,我都達到了目標,並且表單運行良好。 我什至可以更改textfield值,然后再次提交。 僅在第二次提交表單而不更改文本字段值的情況下,我才會獲得org.apache.wicket.core.request.mapper.StalePageException
。 第一次或第二次提交是否通過Enter或Button都沒有關系。 只要文本字段值未更改,任何組合都會導致stale renderCount
。 “不變”包括再次重新輸入相同的值。 這也導致了異常。
我不太確定如何在文本字段中輸入新值來更改檢票口處理頁面的方式。 歡迎任何幫助。
HTML:
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <head> <wicket:head> <title>Suche </title> </wicket:head> </head> <body> <form target="the_iframe" wicket:id="w_form" id="myform" > <input wicket:id="w_input"/> <label wicket:id="w_label"> </label> <input wicket:id="w_button" type="submit" onclick="myform.submit();"/> </form> <iframe name="the_iframe" hidden="true"> </iframe> </body> </html>
Javacode:
public class TestseitePage extends WebPage {
private final Form w_form = new Form("w_form");
@Override
protected void onInitialize() {
super.onInitialize();
final TextField<String> w_input = new TextField<String>("w_input", new Model<String>(""));
final Model m = new Model<String>("Test");
final Label w_label = new Label("w_label", m);
w_label.setOutputMarkupId(true);
add(w_form);
w_form.add(w_label);
w_form.add(w_input);
final AjaxButton w_button = new AjaxButton("w_button") {
@Override
protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
try {
Thread.sleep(2000);
} catch (final InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
m.setObject("Button " + new Date().getTime());
target.add(w_label);
}
};
w_form.add(w_button);
}
}
刪除onclick="myform.submit();"
從按鈕的標記中。 在我看來,這將觸發表單的非Ajax提交,這將導致整頁重新呈現,從而導致Page#renderCount
的更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.