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>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值