解决ajax回调函数无返回值得问题

这里以编辑验证角色名为例:

  首先,定义一个flag全局变量。

  然后,在回调函数resp()中根据判断将flag的值设为true或false。

  最后,在调用函数ckrname()中,return flag就Ok了。

代码如下:

 var xmlhttp;
function ckrname() {
var rolename = document.getElementById("rolename").value;
var oldRoleName = document.getElementById("oldRoleName").value;
if (rolename==""||rolename==null||reg.test(rolename)) {
document.getElementById("sprname").style.color="red";
document.getElementById("sprname").innerHTML="角色名不能为空";
return false;
}else{
xmlhttp = new XMLHttpRequest();
//绑定回调函数状态码改变事件
xmlhttp.onreadystatechange=resp;
//发送请求准备
xmlhttp.open("get", "<%=basePath%>RoleServlet?method=neweditrole&roleName="+rolename+"&oldRoleName="+oldRoleName, true);
xmlhttp.send(null);
return flag;
}
}
var flag;
function resp(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var txt = xmlhttp.responseText;
if(txt>0){
//alert("用户名已存在,请重新输入!");
document.getElementById("sprname").style.color="red";
document.getElementById("sprname").innerHTML="角色名已存在,请重新输入!";
flag=false;
}else{
document.getElementById("sprname").innerHTML = "√";
document.getElementById("sprname").style.color = "green";
flag=true;
}
}
}
上一篇:Java 浏览器兼容模式


下一篇:【OOB】MSHTML!CPaste­Command::Convert­Bitmapto­Png heap-based buffer overflow学习