// 用户名是否已经存在判断
$.ajax({
url : "http://localhost:8080/OracleTest/user!fina.action",
dateType : 'json',
type : 'post',
async: false,
    data : 'user.username=' +userName,
    success : function(s){
if(s.s == "0"){
$("#username").html("<font color=green>用户名可以使用</font>");
return true;
}
else{
$("#username").html("<font color=red>用户名已存在</font>");
return false;
}
},
error : function(){
$("#username").html("<font color=red>账号存在非法字符</font>");
return false;
}
})
}这里如何返回一个boolean出来。
就是说 if($.ajax({})怎么才能得到 true、false。

解决方案 »

  1.   

    if(return  function ***()){}
      

  2.   


    if(isExistUser()){
    //true
    }else{
    //false
    }function isExistUser(){
    $.ajax({
    url : "http://localhost:8080/OracleTest/user!fina.action",
    dateType : 'json',
    type : 'post',
    async: false,
        data : 'user.username=' +userName,
        success : function(s){
    if(s.s == "0"){
    $("#username").html("<font color=green>用户名可以使用</font>");
    return true;
    }
    else{
    $("#username").html("<font color=red>用户名已存在</font>");
    return false;

    },
    error : function(){
    $("#username").html("<font color=red>账号存在非法字符</font>");
    return false;
    }
    })
    }
    }
      

  3.   

    还有你居然把error 放进去做false 既然是用户是否存在,那么这个判断是否应该放在前面就验证好?
      

  4.   


    error是因为我输入;‘这些符号就会走error方法。
    另外你写的 isExitUser()
    我return isExitUser() 能得到 ture、false么?
      

  5.   

    是的!  建议把error提前,不要用到这里!
      

  6.   


    可是这样得不到 true、falsesuccess : function(s){if(s.s == "0"){$("#username").html("<font color=green>用户名可以使用</font>");return true;}else{$("#username").html("<font color=red>用户名已存在</font>");return false;} },这里return,外面得不到的。
      

  7.   

    function clickusername(){
        $.ajax({
    url : "http://localhost:8080/OracleTest/user!fina.action",
    dateType : 'json',
    type : 'post',
    async: false,
        data : 'user.username=' +userName,
        success : function(s){
    if(s.s == "0"){
    $("#username").html("<font color=green>用户名可以使用</font>");
    return true;
    }
    else{
    $("#username").html("<font color=red>用户名已存在</font>");
    return false;
    }
    },
    error : function(){
    $("#username").html("<font color=red>账号存在非法字符</font>");
    return false;
    }
    })
    }function clickdata(){
    if(!clickusername()) return false; //账号验证  这里结果一直执行false,clickusername()不能返回true、false。
    }
      

  8.   

    这么简单的问题自己测试下就知道了!你只写了!clickusername 当然只有false
      

  9.   

    我就是想说 clickusername只返回 false, 返回不出true
      

  10.   

    s有问题!自己仔细想想吧!不知道你的s.s是什么!
    还有if(!clickusername()) return false这个判断个求。这个返回这个方法就行return clickusername
      

  11.   


    s没有问题的,s是我action里返回的参数。s.s==”0“就是可以注册的用户名,
    这跟s没关系的。直接return clickusername()。那下面的其他的js验证都不执行了。大神你有没有搞错啊。
      

  12.   

    function clickdata(){
    var userName = $("#id_user").val();
    var password1 = $("#id_pass1").val();
    var password2 = $("#id_pass2").val();

    if(!clickusername()) return false; //账号验证

    if(password1.length < 8 || password1.length > 16){
    $("#password1").html("<font color=red>请输入8~16位密码。</font>");
    return false;

    // 用户名不能和密码相同
    if(userName == password1){
    $("#password1").html("<font color=red>用户名密码不能相同</font>");
    return false;
    } else {
    $("#password1").html("<font color=green>密码可以使用</font>");
    }
    // 二次输入密码是否一致
    if(password1 != password2 && password2 != null && password2 != "" ){
    $("#password2").html("<font color=red>两次密码输入不一致,请重新输入!</font>");
    return false;
    }
    if(password1 != password2){
    $("#password2").html("<font color=red>请确认您的密码</font>");
    return false;
    }
    if(password1 == password2){
    $("#password2").html("<font color=green>二次确认密码正确!</font>");
    }
    return true;
    }function clickusername(){
    // 账号框失去焦点时验证方法--账号是否符合规范、账号是否和密码相同
    var userName = $("#id_user").val();
    var password1 = $("#id_pass1").val();

    // 账号判断--不能为空
    if(userName == "" || userName == null){
    $("#username").html("<font color=red>用户名不能为空</font>");
    return false;
    }
    // 账号长度判断--在8-16为之间
    if(userName.length < 8 || userName.length > 16){
    $("#username").html("<font color=red>用户名长度在8~16位之间");
    return false;
    }
    if(isWhiteWpace(userName)){
    $("#username").html("<font color=red>*请输入正确的用户名,用户名中不能包含空格!</font>");
    return false;
    }
    // 用户名是否已经存在判断
    $.ajax({
    url : "http://localhost:8080/OracleTest/user!fina.action",
    dateType : 'json',
    type : 'post',
    async: false,
        data : 'user.username=' +userName,
        success : function(s){
    if(s.s == "0"){
    $("#username").html("<font color=green>用户名可以使用</font>");
    return true;
    }
    else{
    $("#username").html("<font color=red>用户名已存在</font>");
    return false;
    }
    },
    error : function(){
    $("#username").html("<font color=red>账号存在非法字符</font>");
    return false;
    }
    })
    }function isWhiteWpace (s)
    {
    var whitespace = " \t\n\r";
    var i;
    for (i = 0; i < s.length; i++){   
    var c = s.charAt(i);
    if (whitespace.indexOf(c) >= 0) {
       return true;
    }
    }
    return false;
    }
      

  13.   

    服务器返回0或1就可以了,js可以把bool型强转为0和1的