URL:https://blog.csdn.net/jaryle/article/details/53927998
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>