jsp页面代码:
<td style="font-weight:blod;text-align:center;vertical-align:center" width="150px">
<a onClick="deleteWorker(<%=list.get(i).getNumber() %>)">
<span style="color:blue">删除</span></a></td>
js代码:
function deleteWorker(number){
/* 使用ajax进行异步请求 */
var xhr = null;
if(window.ActiveXObject){
xhr = new ActiveXObject("microsoft.xmlhttp");
}else{
xhr = new XMLHttpRequest();
}
xhr.onreadystatechange = function(){
if(xhr.redayState==4&&xhr.status==200){
if(xhr.responseText=="false"){
alert("删除失败");
}if(xhr.responseText=="true"){
alert("删除成功");
}
}
};
xhr.open("POST","deleteWorker",true);
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhr.send("number="+number);
}
在点击删除的时候,没有反应,我使用浏览器自带的控制台查看,发现报错:'M001' is not defined,也就是说向js传递的值没有定义,但传递数字的时候就没有问题。这个问题困扰了我很久,后来发现给传递的参数套上引号就解决了这个问题。
因为不加引号的话,带字符的值如M001会被认为是变量,自然就会报未定义的错误,套上引号后,被认为是字符串,自然就没有问题了!
修改后的jsp代码:
<td style="font-weight:blod;text-align:center;vertical-align:center" width="150px">
<a onClick="deleteWorker('<%=list.get(i).getNumber() %>')">
<span style="color:blue">删除</span></a></td>