本帖最后由 zkg510168343 于 2013-11-30 11:27:11 编辑

解决方案 »

  1.   

    阻止默认时间  preventDefault()自己查下
      

  2.   

    你ajax回调函数里面return内容没意义。。你的check_same_user函数要返回true,false才行,而且ajax必须要指定为同步的,要不无法接受ajax返回值$(document).ready(function(){    $("#register_form input[name=user_name]").blur(function(){
            check_user_name();
        });    $("#register_form").submit(function(){
            if(check_user_name()==false)return false;//验证不通过返回false阻止表单提交
          })
    });
    //检测用户名
    function check_user_name(){
        var check_id = "checking_user";
        var value = $("#user_name").attr("value");
        var message = "";    //检测长度
        if(value.length < 3) {        message = "用户名必须在3-15个字符之间";
            return_message(check_id,message);//这里是把提示警告文字显示在用户名input后面        alert('用户名过短');
            return false;    } else {
           return  check_same_user(value,check_id);    }
    }
    //检测用户名是否存在
    function check_same_user(val,id){    var ok=false;
    var url = SITE_URL + '/index.php?app=checks&type=user';
        reload_s(id);    
    $.ajax({
        'type': 'GET',   
    async:false,
         
    'url': url,
            'cache': false,        'dataType' :"html",
            'data':{"val":val},        'success': function(data) {
                if(data == 'ok'){                reload_r(id);
                    message = "ok!";                return_ok(id,message);
                    alert('可以注册');                ok= true;
                } else {                reload_r(id);
                    message = "用户名已经存在!";                return_message(id,message);
                    alert('用户名已经存在');                ok= false;
                }            
            }    });return ok
    }