无法将数组值设置为select2

时间:2017-05-31 13:57:48

标签: javascript java jquery-select2

在我的编辑jsp页面上,我有一个select2下拉列表,当加载编辑jsp页面时,我想在select2下拉列表中将所有数组值设置为选择。我有以下jsp页面上写的javascript函数

<script type="text/javascript"> 
function initSelect2(selectIds) {

           //here it initializes all select ids by iterating

          $("#" + iterated select id).attr("multiple","multiple");

          $("#" + iterated select id).select2();
 }</script>

然后在$(document).ready函数中,我编写了下面提到的代码,它遍历map键并设置select2元素中迭代键的值。 selectValuesForAttMap 是hashmap。它的类型和值是

Map<String,List<String> selectValuesForAttMap = new Map<String,List<String>();

它将有条目例如

1-selVal-3,[类别:类别@ ku @ CATEGORY,类别:pages @ ku @ CATEGORY]
1-selVal-5,[克:1 @ ku @ GRAMS]其中1-selVal- 3是键和[类别:类别@ ku @ CATEGORY,类别:pages @ ku @ CATEGORY]是其他条目的值等等。这里1-selVal-3是select标签和类别的id:category @ ku @CATEGORY是要设置的值

       var multiSelAttrVal = "",entryKey ="";

        <%
            System.out.println("--------------Map values--------------------------");

            Iterator it = selectValuesForAttMap.entrySet().iterator();
            //iterating through map values 
            while (it.hasNext()) {
                Map.Entry pair = (Map.Entry)it.next();
                 System.out.println(pair.getKey() + " = " + pair.getValue());
        %>
                multiSelAttrVal = "<%=pair.getValue()%>";
                entryKey = "<%=pair.getKey()%>";

                console.log("Key =" +entryKey + "Value=" + multiSelAttrVal);
                //splitting values by comma
                var splitValues = multiSelAttrVal.split(",");
                var strToBeSet = "";

                var array1 = [];
                //set the splitted values in array
                if(splitValues.length > 0) {
                     for(var i=0; i< splitValues.length;i++) {
                         strToBeSet += splitValues[i]
                         array1[i] = splitValues[i].trim().replace("]","");
                         array1[i] = array1[i].trim().replace("[","");
                    } 
                } 

                console.log("array=" + array1);
                console.log("strToBeSet=" + strToBeSet);

               //set multiple values in select element
                $("#"+entryKey.trim()).val(array1);

                <% it.remove();  %>

        <%  } %>

我正在尝试使用下面的行设置值但是值没有设置。有人帮我找出问题吗?

  

$(&#34;#&#34 + entryKey.trim())VAL(数组1);

0 个答案:

没有答案