2014-02-07 26 views
3

我有以下代码我想检查表格行中的每个用户是否具有字符串'all'的权限,并将“ALL permissions's Allowed”设置为selectedText的各自选择列表。如何在javascript中动态设置jquery multiselect选项的selectedText ..?

<%! 
List permission = new ArrayList(); 
Connection connection; 
PreparedStatement ps1,ps2; 
ResultSet rs1,rs2; 
String sql1,sql2; 
// execute rs1 
%> 
<table> 
    <tbody> 
     <% 
     while (rs1.next()) { 
      String user = rs1.getString('username'); 
     %> 
     <tr> 
      <td class="username" width="200"><%=user%></td> 
      <td class="perms" width="200"> 
      <% 
       sql2 = "SELECT perms_name FROM perms WHERE username = ? "; 
       // execute rs2    
       permission.clear(); 
       while (rs2.next()) { 
        permission.add(rs2.getString("permission")); 
       } 
      %> 
      <select class="perms" name="perms" multiple="multiple"> 
       <% for(int i=0;i<permsList_folder.size();i++){%> 
        <option value="<%=permission.get(i)%>" disabled="disabled" selected="selected"><%=permission.get(i).toString().toUpperCase()%></option> 
       <%}%> 
      </select> 
      <td> 
    </tr> 
    </tbody> 
</table> 
<script> 
     var hasAllPerms ="<%=permission.contains('all')%>";// this only handle last row results not for each row/user in table   
     $(".perms").multiselect({ 
      noneSelectedText: "No Permission", 
      selectedText:hasAllPerms=="true"?"ALL Permissions's Allowed":"# Permissions's Allowed" 
     }); 
</script> 
+0

看看这个:http://stackoverflow.com/questions/20917049/set-values-in-jquery-multiselect-dropdown。它必须我有点类似 – Sandeep

+0

试试这个http://ivaynberg.github.io/select2/select2-latest.html –

回答

2

有几种方法可以实现您正在尝试做的事情。

在这种情况下,看起来您使用的是jsp,因此您可以在不使用任何JavaScript的情况下设置所选值并显示字符串服务器端。

<select class="perms" name="perms" multiple="multiple"> 
    <% for(String permissionStr : permission) { 
     String selectedStr=""; 
     String displayValue=permissionStr.toUpperCase(); 
     if("all".equals(permissionStr)) 
     { 
      displayValue="ALL Permissions's Allowed"; 
      selectedStr="selected='selected'"; 
     } 
    %> 
     <option value="<%=permissionStr%>" disabled="disabled" <%=selectedStr%> ><%=displayValue%></option> 
    <%}%> 
</select> 

如果你想设置它使用JavaScript/jQuery的一种方式是将ID添加到每个选择框,如

<select class="perms" name="perms" id="perms<%=user%>" multiple="multiple"> 
    <% for(int i=0;i<permsList_folder.size();i++){%> 
     <option value="<%=permission.get(i)%>" disabled="disabled" selected="selected"><%=permission.get(i).toString().toUpperCase()%></option> 
    <%}%> 
</select> 

在每个用户然后重复,而是选择的选择基于类基于ID选择

$("#perms" + user).multiselect(...); 

我也不会使用原始类型(Java 1.5之前的向后兼容性),并在权限列表中设置类型,并在名称中添加's'或'List'以更清楚地表明它是一个包含多个权限的集合。

<%! 
List<String> permissions = new ArrayList<String>(); 
%> 
+0

非常感谢这么好的答案 –

相关问题