后台数据控制前端checkbox(是否选中)

网上有很多关于前端checkbox数据怎样传送给后台(action)的实例,但是很少有通过后台数据来控制前端checkbox的是否选中的例子,最近项目中就碰到这个问题

解决办法:

1、后台编写异步方法,获取value集合

 

 
  1. public String returnCheckbox(){

  2. //获取value集合

  3. List<Integer> checklauser = serclassService.selectlsidBycid(cid);

  4. JSONObject json = new JSONObject();

  5. //放进json中

  6. json.put("checkboxlist", checklauser.toString());

  7. //将json返回到也main

  8. returnJson(json.toString());

  9. return "jsonresult";

  10. }


2、前台编写异步方法

 
  1. function getCheckbox(cid){

  2. $.ajax({

  3. type: "post",

  4. url: "classification!returnCheckbox.action?cid="+cid,

  5. async:true,

  6. dataType: "json",

  7. success: function(data){

  8. //这个地方搞了好久,用split()页面上报split is not a function错误

  9. //后面在国外的网站上建议 在字符串后面加 +'',然后问题就解决了 @zhangll

  10. var str = data.checkboxlist+'';

  11. //异步获取选中记录中包含的lsid分类集合,遍历集合,如果集合中的值与checkbox的value值相同,则选中

  12. $(str.split(",")).each(function (i,dom){

  13. $(":checkbox[value='"+dom+"']").prop("checked",true);

  14. });

  15. }

  16. });

  17. };

注:var str =  data.checkboxlist+'',这里我在做这块的时候页面一直报 split not a function错误,加了这个单引号,就不会有这个问题了。

 

3、编写 jsp页面,这里的checkbox我是从后台的list中遍历出来的

 

 
  1. <label id="label">

  2. 服务范围

  3. </label>

  4. <c:forEach var="lauserVo" items="${listlauserVo}" varStatus="status">

  5. <input type="checkbox" name="checklauser" value="${lauserVo.lsid}" />${lauserVo.lsname}

  6.     <!--下面c:if标签可以控制每四个checkbox换行-->

  7. <c:if test="${status.count % 4 == 0}">

  8. <br/>

  9. </c:if>

  10. </c:forEach>

 

效果如下,勾选的value值全部是由后台传进来的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那些年的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值