Плагин Struts2 JQuery AutoCompleter не работает при добавлении атрибута selectBox="true"
Работает (грузит список нормально):
<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter list="lstcountry"
listKey="idcountry" listValue="countryname" label="Country"
href="%{countrylist}" name="idcountry" />
Не работает (ничего не загружено. Никакого вызова не делается):
<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter selectBox="true" list="lstcountry"
listKey="idcountry" listValue="countryname" label="Country"
href="%{countrylist}" name="idcountry" />
Разница лишь в том, что selectBox
атрибут добавлен. Что мне не хватает? Я использую Struts 2.3.15 и Struts2 JQuery Plugin 3.6.1 (которые оба довольно недавно).
Спасибо!!
2 ответа
Struts2 jQuery autocompleter
виджет с selectBox=true
включен, чтобы иметь возможность работать правильно, не должен загружать данные удаленно. Другими словами, атрибут href="%{countrylist}"
виновник выбора не работает. Эти два атрибута являются взаимоисключающими. Вы должны выбрать между двумя вариантами, либо вы используете autocompleter
как поле ввода с удаленными данными или как поле выбора, но без удаленной загрузки данных, поскольку оно загружается из valueStack
как обычно select
тег.
Вы можете дополнить поле выбора selectBoxIcon="true"
чтобы виджет отображался плавно или используйте соответствующую тему jQuery в теге заголовка. Попытайся
<sj:autocompleter selectBox="true" selectBoxIcon="true" list="lstcountry"
listKey="idcountry" listValue="countryname" label="Country"
name="idcountry" />
Пример из вики-страницы jQuery плагина struts2.
+1, потому что я вижу, что вы уже разместили в относительной группе Google... но, если все это время не изменилось, согласно этому (довольно старому, но все еще открытому JIRA) комментарию автора плагина:
Автозаполнение с selectBox работает со статическим списком. В вашем случае вы должны использовать
<sj:select />
вместо этого используйте тег autocomplete="true".<s:url id="remoteurl" action="jsonsample"/> <sj:select href="%{remoteurl}" autocomplete="true" id="echo3" name="echo" list="languageObjList" listKey="myKey" listValue="myValue" emptyOption="true" headerKey="-1" headerValue="Please Select a Language"/>
Тогда <sj:select />
с обоими emptyOption
а также autocomplete
установлен в true
может быть замена для динамического выбора <sj:autocompleter />
ты ищешь.
Не стесняйтесь запустить этот пример тоже, который, кажется, работает из коробки.