チェックボックスを含むHTMLフォームと、いくつかのテキストフィールドを含むListViewがあります。チェックボックスをオンにすると、テキストフィールドが無効になり、その逆になります。
AjaxFormComponentUpdatingBehavior でチェックボックスを使用しています。ただし、テキストフィールドを有効/無効に設定していません。以下はコードスニペットです -
Checkbox.add(new AjaxFormComponentUpdatingBehavior("onchange") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
listView.setEnabled(!Checkbox.getModelObject());
listViewContainer.addOrReplace(listView);
listViewContainer.setOutputMarkupId(true);
target.addComponent(listViewContainer);
}
});
HTMLは -
<form wicket:id="geoForm">
Checkbox: <input type="checkbox" wicket:id="unmanagedChk" />
<div id="listViewContainer" wicket:id="listViewContainerId">
<div wicket:id="customGeoForChannel">
<div>
Latitude(decimal):
<input type="text" wicket:id="lat" maxlength="18" />
</div>
<div>
Longitude(decimal):
<input type="text" wicket:id="lon" maxlength="19" />
</div>
<div>
Radius(miles):
<input type="text" wicket:id="radius" maxlength="3" />
</div>
</div>
</div>
</form>
ジオフォーム --- フォーム
customGeoForChannel --- リストビュー
緯度、経度、半径 --- テキストフィールド
unmanagedChk --- チェックボックス