我已经对我的注册进行了一些表单验证。 Sofar我可以在我的$ ajax成功函数中得到真或假,但是不能让它返回到prceed其余代码中......有人可以为此写一个解决方案吗?
function checkIfIsInDB(o, n){
var target_url = window.location.pathname + 'user/check_if_username_exist',
valid = '';
$.ajax({
type: "POST",
dataType: "json",
url: target_url,
data: {
username: o.val()
},
success:
function(json){
if(json['check']===false){
o.addClass( "ui-state-error" );
updateTips( n + " has been alredy taken." );
}
if(json['check']===true){
valid = true;
}
}
});
alert(valid); //return(valid); need for returning true or false
}
答案 0 :(得分:0)
你正在异步工作,所以你需要把你的'进程代码'放在成功:$ .ajax()函数的回调部分。
您在检查失败时已正确完成,您只需要在
中执行相同的操作if(json['check'] ===true){
//put your success code here - call another function perhaps
}
一部分。
答案 1 :(得分:0)
尝试在成功回调中移动alert()
。
function checkIfIsInDB(o, n) {
var target_url = window.location.pathname + 'user/check_if_username_exist',
valid = '';
$.ajax({
type: "POST",
dataType: "json",
url: target_url,
data: {
username: o.val()
},
success: function (json) {
if (json['check'] === false) {
o.addClass("ui-state-error");
updateTips(n + " has been alredy taken.");
}
if (json['check'] === true) {
valid = true;
}
alert(valid); //return(valid); need for returning true or false
}
});
}