这里以编辑验证角色名为例:
首先,定义一个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;
}
}
}