如下图的情况,处理后台数据在复选框中回显问题?为什么会这样?

//其中tagList是所有标签集合。 tagids是根据某个id得到其有关联的标签id的字符串拼接
<tr>
<th>标签:</th>
<td>
<c:forEach items="${tagList}" var="one" varStatus="step">
<input name="s1" type="checkbox" value="${one.id}" ${fn:contains(tagids,one.id)?'checked':'' }/> ${one.tagName}  
<c:if test="${step.count%5==0}">
<br/>
</c:if>
</c:forEach>
</td>
</tr>

选中t9,点击保存,然后进行查看时,标签1也选中。




小唯快跑啊
浏览 114回答 2
2回答

汪汪一只猫

$(function(){//当页面加载完成的时候,自动调用该方法window.onload=function(){//获得所要回显的值,此处为:100,1001,200,1400var checkeds = $("#meidaHidden").val();//拆分为字符串数组var checkArray =checkeds.split(",");//获得所有的复选框对象var checkBoxAll = $("input[name='media']");//获得所有复选框(新闻,微信,论坛,问答,博客,平媒)的value值,然后,用checkArray中的值和他们比较,如果有,则说明该复选框被选中for(var i=0;i<checkArray.length;i++){//获取所有复选框对象的value属性,然后,用checkArray[i]和他们匹配,如果有,则说明他应被选中$.each(checkBoxAll,function(j,checkbox){//获取复选框的value属性var checkValue=$(checkbox).val();if(checkArray[i]==checkValue){$(checkbox).attr("checked",true);}})}//全选多选框的回显var array=$("input[name='media']:checked").length;//如果等于6,说明全部被选中,那么全选多选框也要被选中//如果不等于6,说明全部都没选,那么全选的多选框也要被取消if(array==6){$("#checkAll").attr("checked",true);}else{$("#checkAll").attr("checked",false);}};});&nbsp;

慕尼黑8549860

jsp页面得到从后台传过来的数据循环便利,然后判断在复选框中加入checked="checked" 就可以了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript