本帖最后由 keric2008 于 2013-09-22 15:34:35 编辑

解决方案 »

  1.   

    服务器返回的内容是,jison格式{"flag":true,"index":"validateSigninfoResult","data":"customer"}
      

  2.   

    JS 方法最后 return false; 所以提交不了;
    ajax方法里面的 return true; 只作用在方法域里面,没有返回到 checkSubmit() 里
      

  3.   


    你最后都是 return false; 当然过不去了
    改成用 同步方式 
    $.ajax({   async: false,url:"xxxxx"  }  )
      

  4.   


    <input class="confirm-button" name="submit" onclick="checkSubmit();" type="submit" value="登录"/>
      

  5.   

    提交按钮type改成button
    ajax 里 return true 改成 document.forms[0].submit();
      

  6.   

    var flag = true;
    function checkSubmit(){
        //triggle submit button usability
        $(".confirm-button").attr("disabled","disabled");
        $("#authorization-errorDiv").css("display","none");
        //get value
        username = $("#authorization-form-username").val();
        passwd = $("#authorization-form-passwd").val();
        //check compliment
        if(!username || !passwd){
            $(".confirm-button").removeAttr("disabled");
            $("#authorization-errorDiv").css("display","inline-block").html("您确保您完整的输入了您的用户名和密码。");
            if(!username) $("#authorization-form-username").css("border","1px solid #9C9C9C");
            if(!passwd) $("#authorization-form-passwd").css("border","1px solid #9C9C9C");
            return false;
        }
        //check submit information with server
        $.get(ins+"?request=ajax&do=checkSigninfo",{username:username,passwd:passwd},function(data){
            //adjust next action according to server response
            if(data.flag){
                return true;
            } else {
                $(".confirm-button").removeAttr("disabled");
                $("#authorization-errorDiv").css("display","inline-block").html("您输入了错误的用户名或者密码,请注意密码是区分大小写的。如果依然出现此问题,请联系<a href='technical_support' title='当然,这是免费的 : )'>技术支持</a>");
                flag = false;
            }
        })
        .error(function(){
            $(".confirm-button").removeAttr("disabled");
            $("#authorization-errorDiv").css("display","inline-block").html("同服务器通讯出现错误,可能是由以下一些原因造成的<ul><li>您的网络不稳定</li><li>服务器发生错误</li></ul>");
            flag = false;
        });
        return flag;
    }
      

  7.   

    1:js存全局变量浪费用户内存。
    2:type改成button的话。用户习惯性的按回车会没反应,影响体验,不至于还要写个监听回车按钮的事件吧。
    我采用了同步的方式。
    $.get(async: false, ins+"?request=ajax&do=checkSigninfo", {username:username,passwd:passwd},function(data){
      

  8.   

    checkSubmit函数return的本就是一个固定值,有什么疑问?
    其他return都是在回调函数中,和checkSubmit函数没关系,
    ajax验证的做法是先无条件阻止提交,然后在回调函数中主动调用submit方法提交表单(注意要调用表单dom的submit方法而不是jquery对象的,否则会再次出发submit事件),
    当然如果不会做你也可以如楼上所写用同步ajax方式
      

  9.   


    这样写语法好像有问题Uncaught SyntaxError: Unexpected token : 
      

  10.   

    $.ajax(ins+"?request=ajax&do=checkSigninfo", {username: username, passwd: passwd}, async:false, function(data){});这样写为什么会有语法错误啊 。Uncaught SyntaxError: Unexpected token : 
      

  11.   


    $.ajax({
        url:ins+"?request=ajax&do=checkSigninfo",
        data:{username: username, passwd: passwd},
        async:false,
        success:function(data){}
    });