今天做項目遇到一個需求需要把一些單位的層級在頁面展現並附有chekbox選項框,支持全選和反選圖示:
效果實現代碼:
<table style="border-weight: 0px!important;" border="0" cellpadding="0px" cellspacing="8px" >
<c:forEach items="${unsign}" var="orgp" varStatus="gstatus">
<tr class="${orgp.id}">
<td style="border-width: 0px;">
<label>
<input style="margin-top: 0px;" type="checkbox" value="${orgp.orgName}" name="parentAddress" id="${orgp.id}"/>
<span class="" style="font-weight:bold">${orgp.orgName}</span>
</label>
</td>
<c:forEach items="${orgp.childs}" var="child" varStatus="accountStatus">
<c:if test="${accountStatus.count==1}"><tr class="${orgp.id}" style="border-width: 0px;"></c:if>
<td width="120px" style="padding-left:13px; border-width: 0px;">
<label>
<input id="${child.c_id}" style="margin-top: 0px;" type="checkbox" value="${child.c_id}" name="address" />
<span class="${child.c_id}">${child.c_recivername}</span>
</label>
</td>
<c:if test="${(accountStatus.count)%4==0}">
<tr class=""></tr>
</c:if>
<c:if test="${(accountStatus.count)%4!=0&&accountStatus.last}">
<tr class=""></tr>
</c:if>
</c:forEach>
</tr>
</c:forEach>
</table>
全選和反選代碼:
//全選/反選
$("input[name='uparentAddress']").on('click',function(){
if(this.checked){
$('tr[class='+$(this).parents('tr').attr('class')+']').find("input[name='uaddress']").each(function(){
$(this).prop("checked",true);
});
}else{
$('tr[class='+$(this).parents('tr').attr('class')+']').find("input[name='uaddress']").each(function(){
$(this).prop('checked',false);
});
}
});
單選
$("input[name='address']").on('click',function(){
var flag = true;
var aa = $(this).parents('tr').attr('class');
var p = $(this).parents('tr').parents('tr').find('input[id="'+aa+'"]');
$(this).parents('tr').find('.'+aa).find('input[name="address"]').each(function(){
if($(this).prop('checked')==false){
flag = false;
}
});
if(flag==true){
p.prop('checked',true);
}else{
p.prop('checked',false);
}
});
獲取checkbox選中的值:
var id='';
$('input[name="address"]:checked').each(function(){
id += $(this).val()+",";
});