[英]How to dynamically set jquery multiselect option's selectedText in javascript ..?
我有以下代碼,我想檢查表行中的每個用戶是否具有字符串'all'的權限,並將“ALL permissions's Allowed”設置為相應選擇列表的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>
有幾種方法可以實現您的目標。
在這種情況下,您似乎使用的是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(...);
我也不會使用原始類型(pre java 1.5向后兼容性)並在您的權限列表中設置類型,並在名稱中添加“s”或“List”以更清楚地表明它是包含多個權限的集合。
<%!
List<String> permissions = new ArrayList<String>();
%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.