js接收后端数据回显checkbox打上勾
js一般直接接收springmvc后端传递过来的数据,数据一般通过model过来,里面存放的是对象,js中一般不能处理对象数据,所以在controller层把对象数据进行重新封装成(字符串等js可以识别的数据),例如:controller传递过来的是一个包含多个id的list集合,里面存放的是对象,就需要在controller层对这个list集合进行遍历,获取每个id然后,使用字符串存取,然后通过model回传到js中,就可以作比较了。
实现checkbox框的数据回显,使用controller中传递的数据<c:foreach>获取了这些快递公司
------解决思路----------------------
用jquery把选项属性设置为checked
$().attr("checked",true);
------解决思路----------------------
$(function() {//页面加载的时候触发
var boxObj = $("input:checkbox[name="id"]"); //获取所有的复选框
var expresslist = "${supplierExpressids}"; //用el表达式获取在控制层存放的复选框的值为字符串类型
var express = expresslist.split(","); //去掉它们之间的分割符“,”
for(i=0;i<boxObj.length;i++){
for(j=0;j<express.length;j++){
if(boxObj[i].value == express[j]) //如果值与修改前的值相等
{
boxObj[i].checked= true;
break;
}
}
}
})
使用jquery实现
var boxObj = $("input:checkbox[name="id"]"); //获取所有的复选框值 var expresslist = "${supplierExpressids}"; //用el表达式获取在控制层存放的复选框的值为字符串类型 var express = expresslist.split(","); $.each(express, function(index, expressId){ boxObj.each(function () { if($(this).val() == expressId) { $(this).attr("checked",true); } }); });
<c:forEach var="item" items="${allCompInfoList }"> <tr> <td class="d" align="center"><input type="checkbox" name="id" value="${item.id}" /></td> <td class="d" align="center">${item.name}</td> </tr> </c:forEach>
- 上一篇: java 18:给方法传递对象参数,对象数组
- 下一篇: php: strpos返回值为0的问题