chechbox勾选复选框

博客讲述了在修改信息的页面中遇到的复选框处理问题。内容包括如何在后台将选中的复选框(共10个,已选5个)转化为字符串并用特殊字符分割,如'abc;dfv;ert;yui',然后通过隐藏字段传递到前端。博主在尝试使用String[] allroles数组和fn:contains函数进行匹配时遇到困难。

需求是现在要修改一些信息,修改页面有一栏是复选框按钮。

假如:总共有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元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值