牛骨文教育服务平台(让学习变的简单)
博文笔记

js接收后端数据回显checkbox打上勾

创建时间:2016-12-29 投稿人: 浏览次数:7430

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>

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。