Struts 2 jquery插件sj:select和jquery.select2

时间:2015-04-06 13:34:58

标签: jquery struts2 jquery-select2 struts2-jquery struts2-jquery-plugin

我们使用过struts 2 jquery插件。我们已将所有选择更改为jquery select2

$('select:visible:not').select2()

有许多sj:selects选择通过ajax重新加载,如:

    <s:select id="areaCode" name="areaCode" list="areas" listKey="top"
        listValue="areaName" headerKey=""
        headerValue="Select It"/>

    <sj:select id="realodedBranches" name="openerBranchNo"
        list="realodedBranches" href="%{reloadbranch}" listKey="branchCode"
        listValue="branchName" reloadTopics="reloadBranches"/>

每件事情都很好,期待事件只返回一个结果行,而选择框只有一个选项。在此状态下,选择2将不允许用户选择此选项!

如果我更改结果以返回更多结果,那么它可以正常工作。

只有当我重新加载选择时才会看到这个问题,我不知道为什么会这样。

我只使用jquery select 2进行了一个简单的测试,它工作正常,添加的选项是可选的:

<select id="mainSelect">
</select>    

<button id="clickMe">Click Me </button>


$('select').select2();

$('#clickMe').click(function(){
     $('#mainSelect')
         .append($("<option></option>")
         .attr("value","val1")
         .text("text1"));    
});

1 个答案:

答案 0 :(得分:0)

当添加的选项为1时,select2会自动将aria-selected="true"添加到第一个选项。这可以防止它被选中。

这似乎是一个错误https://github.com/select2/select2/issues/3242

要解决此问题,您可以设置sj:selectemptyOption="true"属性,这是一种解决方法但会添加一个空选项并选择2将此空选项标记为selected < / p>

仍在寻找更好的方法!