日期:2014-05-16  浏览次数:20305 次

关于checkbox取消勾选的触发问题
勾选岗位checkbox可以显示对应单位,但是取消勾选不触发remove对应单位的checkbox,继续勾选继续出现对应单位,求解决触发remove方法
对应方法代码如下:

function clickPostAuto(obj){
if($(obj).attr("checked") == true){
$.getJSON('./!getUnitsByPostId?postId='+obj.value+'&id=${entity.id}',function(json){
var unitMap = json.unitMap;
var lackNum = json.lackNum;
var requestNum = json.requestNum;
var addUnit="";
for(var i in unitMap){
addUnit += "<input type='checkbox' value="+i+" name='unitIds'>"+unitMap[i]+"共需<span id='"+i+"_"+"' color='red'>"+requestNum[i]+"</span>人; 空缺<span id='"+i+"' color='red'>"+lackNum[i]+"</span>人</input>";
}
$("#unit").append(addUnit);
});
}else{
$.getJSON('./!getUnitsByPostId?postId='+obj.value+'&id=${entity.id}',function(json){
var unitMap = json.unitMap;
var lackNum = json.lackNum;
var requestNum = json.requestNum;
var addUnit="";
for(var i in unitMap){
addUnit += "<input type='checkbox' value="+i+" name='unitIds'>"+unitMap[i]+"共需<span id='"+i+"_"+"' color='red'>"+requestNum[i]+"</span>人; 空缺<span id='"+i+"' color='red'>"+lackNum[i]+"</span>人</input>";
}
$("#unit").remove(addUnit);
});
}
}

------解决方案--------------------
引用:
Quote: 引用:

$("#unit").remove(addUnit);
addUnit是html串 不是 选择器表达式啊
直接$("#unit").html("");


岗位是可以多选的,对应的单位也是可以多选的~


那你在生成append方法用的html时就要做好标识,比如说你把obj.value
作为checkbox、span id的一部分(obj.value_i_checkbox,obj.value_i_span)
这样在remove的时候  查找所有id 以 obj.value_开头的元素 
$("[id^='obj.value_']").remove();