0
我正在使用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;
}
現在,我的問題是雖然idSelectorUL(對於例如selectddUL)存在時,我得到idSelectorUL.length爲0。我刪除選項後立即重建多選,並且由於上述問題,我得到兩個多選(長度返回0,並且檢票創建多選選項)
任何與我的代碼或任何其他方式來識別UL禮物的問題基於id使用jQuery?
我不調用'setOutputMarkupId(true)'。 在添加新報告時,通過ajax添加組件,同時進行編輯/複製,組件在頁面加載時存在。是的,我正在考慮將JS代碼從renderHead移動到AjaxFormComponentUpdatingBehavior。稍後更新。 – ChilBud