Works(加载清单):
<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(这些都是最新的)。
谢谢!
答案 0 :(得分:2)
+1,因为我看到你already posted on the relative Google Group ...但是,如果事情没有同时改变,根据插件作者的this (pretty old, but still open JIRA) comment:
使用selectBox的自动完成程序正在使用静态列表。在 在您的用例中,您应该使用
<sj:select />
标记 自动填充=&#34;真&#34;相反。<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
的{{1}}可以替代您正在寻找的动态选择框true
。
随意运行this example too,这似乎是开箱即用的。
答案 1 :(得分:2)
启用了autocompleter
的Struts2 jQuery 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" />
来自struts2 jQuery插件wiki页面的example。