私はbootstrap multiselectを使用して、テキストボックスからの検索に基づいていくつかのユーザーを更新/表示します。オプションを選択解除すると、その値が複数選択と再構築から削除されます。私は、以下に示すように、この複数選択を表示するには、改札のフレームワークを使用しています -jQueryの長さを使用して既存の要素を見つけることができません
今private PaletteListChoice<T> addSelectedEntities(...) {
final PaletteListChoice<T> result = new PaletteListChoice<T>(id, model, choicesModel, renderer, this) {
private static final long serialVersionUID = 1L;
@Override
public void renderHead(IHeaderResponse response)
{
String jsSelectedField = "var idSelector = '" + getMarkupId() + "';\n"
+ "var idSelectorUL = jQuery('#' + idSelector +'UL');\n"
+ "if(idSelectorUL.length) {\n" // if idSelectorUL present, don't create bootstrap-multiselect again
+ "} else {\n" // if idSelectorUL not present, then create bootstrap-multiselect again
+ "MultiSelect.setMultiSelect(idSelector, false);\n" // custom code to display bootstrap multiselect, similar to $('#id').multiselect();
+ "}\n";
response.renderOnDomReadyJavaScript(jsSelectedField);
}
};
parent.add(result);
return result;
}
、(例えばselectddUL用)idSelectorULが存在しているのに、私の問題は、私が「0」としてidSelectorUL.lengthを取得しています。私はオプションが削除され、上記の問題のためにすぐに複数選択を再構築しています.2つのマルチセレクションを取得しています(長さは0、ウィッセットはマルチセレクションオプションを作成します)
私のコードや、 idに基づいてjQueryを使用しますか?
私は 'setOutputMarkupId(true)'を呼んでいません。 新しいレポートを追加するとき、コンポーネントは編集/コピー中にajax経由で追加されます。コンポーネントはページの読み込み時に存在します。はい、私はrenderHeadからJSコードをAjaxFormComponentUpdatingBehaviorに移動することを考えていました。後で更新されます。 – ChilBud