2014-02-07 31 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

非常感謝這麼好的答案 –

相關問題