需求是现在要修改一些信息,修改页面有一栏是复选框按钮。
假如:总共有10个复选框,有5个是被选中的。
先把10个复选框通过c标签遍历出来,具体如下:
<c:forEach var="role" items="${roleMap }">
<input type="checkbox" name="roleIds" value="${role.key }">${role.value }</input>
</c:forEach>把已经选中的在后台拼装为一个字符串,可以用特殊字符分割:
例如:Strint sts = "abc;dfv;ert;yui";
在前台页面:可以用一个hiden接受暂存 数据。
<input type="hidden" id="sepcRole" value="${sepcRole}"/>页面加载完以后,调用js方法。
$(document).ready(function() {
chechBoxFunc();
}
// 勾选复选框
function chechBoxFunc(){
var sepcRole = $("#sepcRole").val();
var strs= new Array(); //定义一数组
strs = sepcRole.split(";");
$("input[name='roleIds']").each(function(){
for(var i = 0;i<strs.length;i++){
if(strs[i]==this.value){
$(this).attr('checked','checked');
}
}
}
);
}
在此碰到的问题。有本的思路是:
把已经选中的在后台做一个字符串数据传递给前台;
格式为String[] allroles = [abc,nbv,efr,det],问题是${fn:contains(数组,字符串)}不好使。
具体代码为:
<c:forEach var="role" items="${roleMap }">
<input type="checkbox" name="roleIds" value="${role.key } <c:if test='${fn:contains(allroles,role.key)}'>
checked='checked'
</c:if>
">${role.value }</input>
</c:forEach>次方式行不通。
博客讲述了在修改信息的页面中遇到的复选框处理问题。内容包括如何在后台将选中的复选框(共10个,已选5个)转化为字符串并用特殊字符分割,如'abc;dfv;ert;yui',然后通过隐藏字段传递到前端。博主在尝试使用String[] allroles数组和fn:contains函数进行匹配时遇到困难。

1487

被折叠的 条评论
为什么被折叠?



