您的位置:首页 > Web前端 > JQuery

使用jquery中的ajax方法验证表单

2011-10-28 16:18 676 查看
在进行用户从注册的时候,进场需要校验email或username是否被注册,这时候需要ajax验证,但是ajax验证无法返回回调函数的值到外部的校验方法,如

function CheckForm(){

if($("#username").val() == ''){

$("#warnning").html("<font color=red>ERROR</font>");

return false;

}

return CheckUserName(); //这里的返回值不起作用

}

function CheckUserName(){

var username = $("#username").val();

$.get("b.php",{ name:username},

function (data){

if(data == 1){

$("#warnning").html("<font color=#FF3300>Account is used.</font>");

return false; //这里是返回给CheckUserName()的吗?

} else {

$("#warnning").html("<font color=#00CC66>You can register.</font>");

return true; //这里是返回给CheckUserName()的吗?

}

}

);

}

那么该如何处理呢?

要将ajax设置为同步的,需要使用$.ajax,$.get默认是异步的,并且不是在回调函数内return,而是在CheckUserName函数中申明一个变量来接受回调函数的返回值,然后校验CheckUserName返回这个值。

function CheckForm(){

if($("#username").val() == ''){

$("#warnning").html("<font color=red>ERROR</font>");

return false;

}

return CheckUserName(); //这里的返回值不起作用

}

function CheckUserName(){

var username = $("#username").val();

var result=false;

$.ajax({async:false//要设置为同步的,要不CheckUserName的返回值永远为false

,url:'b.php',data:{name:username}

,success:function(data){

if(data == 1){

$("#warnning").html("<font color=#FF3300>Account is used.</font>");

result=false;

} else {

$("#warnning").html("<font color=#00CC66>You can register.</font>");

result=true;

}

}});

return result;//==========这里才是CheckUserName的返回值,回调函数返回值没有意义

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: