今天做CRM(客户管理系统)的时候遇到了一天小bug,如图要将客户跟市场活动进行批量关联操作,所以要拿到市场活动的id跟客户的id通过第三张表进行
关联绑定,而市场活动是通过jQuery动态拼接产生的,具体代码(代码有错) var html="" $.each(data,function(i,n) { html+='<tr value="'+n.id+'">', html+='<td><input name="xz" type="checkbox" /></td>' html+='<td>'+n.name+'</td>' html+='<td>'+n.startDate+'</td>' html+='\t<td>'+n.endDate+'</td>' html+='<td>'+n.owner+'</td>' html+='\t</tr>'}) $("#act").html(html)
现在要做的事就是获取已点击单选框的市场活动id具体代码如下
if(confirm("你确定要关联记录吗")){ var $xz=$("input[name=xz]:checked"); if($xz.length==0){alert("请选择")} else{ var nums=new Array(); for (var i = 0; i <$xz.length ; i++) { nums.push($($xz[i]).val()) } var num=nums.toString(); }
num就是单选框的id集合,
最后发送ajax请求到后端进行批量关联操作,然后就报错了
具体报错截图
发送get请求携带参数应该是nums:【id1,id2】,却变成了两个on,最后经过排查发现,原来是动态拼接html的时候单选框只写了name,没写value(value 写到了其他标签里,一开始以为value可以随便写在哪,尴尬),修改后的代码:
html+='<td><input name="xz" type="checkbox" value="'+n.id+'"/></td>'