0

チェックボックスを含む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 --- チェックボックス

4

2 に答える 2

0

リストビューコンテナをフォームに追加し、以下のようにフォームをターゲットに追加しました。これで問題は解決しました。

protected void onUpdate(AjaxRequestTarget target) {
            listView.setEnabled(!Checkbox.getModelObject());
            listViewContainer.addOrReplace(listView);
            listViewContainer.setOutputMarkupId(true);
            target.addComponent(listViewContainer);
            form.add(listViewContainer);
            target.addComponent(form);
        }
于 2013-04-05T04:45:50.970 に答える