最近做SSH的项目,也集成了DWR框架,在注册页面中写了一个checkusername()方法检查用户名是否重复。利用ajax查询,返回结果始终不生效,后来知道原因是在回调函数中返回只是退出了回调函数,所以会返回undefined,需要记录结果,在回调函数外面返回值。
function checkusername(){
var username = document.all.username.value;
var flag = false;
dwr.engine.setAsync("false");
userClass.isExist(username,function ondata(data){
//在回调函数中直接返回只是退出回调函数
/*
if(data == "用户名可用")
return true;
else
return false;
*/
if (data=="用户名可用"){
flag = true;
}else{
alert(data);
}
});
dwr.engine.setAsync("true");
//在回调函数外面返回才会生效
return flag;
}