最近做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;
}