java - Wicket text input disappears after setEnable on TextArea -
i have textarea, , associated checkbox disable , enable textarea (setenabled(boolean)), used decide if required field or not.
my problem wicket not keep text in textarea when disabled (setenabled(false)). clears input.
how keep value in textarea before setenabled called on it? need update model serverside, can ajax request update it? haven't found example.
checkbox.add(new ajaxformcomponentupdatingbehavior("onchange") { @override protected void onupdate(ajaxrequesttarget target) { if (textfield.isenabled()) { textfield.inputchanged(); // update text input in propertymodel…. } textfield.setenabled(false); // change in state not include text have been typed in tekstfelt.setrequired(false); target.add(textfield); } });
you must add ajaxformcomponentupdatingbehavior blur event textarea when type in textarea , leave textarea (lose focus = blur) typed persisted model. sample code:
private textarea textarea() { textarea textarea = new textarea("textarea", new propertymodel<string>(this, "value")){ @override protected void onconfigure() { setenabled(condition()); } }; textarea.setoutputmarkupid(true); textarea.add(new ajaxformcomponentupdatingbehavior("blur") { @override protected void onupdate(ajaxrequesttarget target) { } }); return textarea; } i recommend wheter textarea enabled or not should set in onconfigure() of textarea. when want updated textarea add ajaxrequesttarget , textarea knows if should enabled. best practice , not directly correlated question.
Comments
Post a Comment