解决方案 »

  1.   

    写在提交方法里面时间上是不允许的,因为ajax请求是异步的,在他返回之前你的表单已经提交了你可以在你要校验的表单控件输入完成之后直接用ajax校验,通过后改写一个标识来标识通过校验,标识默认是false
      

  2.   


    $("#b1").click(function(){
    if($("#name").attr("value")==null||$("#name").attr("value")==""){
    $("#failname").html("<font color=red>请填写你的姓名!</font>");
    }
    else if($("#title").attr("value")==null||$("#title").attr("value")==""){
    $("#failtitle").html("<font color=red>请填写会议主题!</font>");
    }
    else if($("#pass").attr("value")==null||$("#pass").attr("value")==""){
    $("#failpass").html("<font color=red>请填写会议室密码!</font>");
    }
    else{
    $("#form").submit();
    //document.form.form.submit();
    }
    });用这种方法!提交按钮是个button,点击button就进行验证!
      

  3.   

    你的程序逻辑有问题, flag = true;
    最后会把flag初始为true,最后的判断结果跟ajax回调时间有关系
      

  4.   

     success:function(data) {
                        if(data=="yes"){
    $cookies.success = "";//随便什么变量吧,您自己看着办,标记的作用
    //......
    var i = setInterval(
    function () {
    if ($cookies.success != null) {
    clearInterval(i);
    if (flag) {
    $("#registerId").submit();
     }
    } else {
    console.log('not yet!')
    }
    },
    100);
      

  5.   

    flag = true; 为什么要写在外面呢,写在if(data=="yes"){
                            $("#spanName").html("<img src='/book/image/ok.png'  width='10%' ></img>");
                            flag = true;
                        }else{
                            $("#spanName").html("用户名已存在");
                            flag = false;
                            return;
                        }不行吗
      

  6.   

    Data中的username:username写错了
      

  7.   

    我的页面不止一个ajax啊,用户名和邮箱都要验证,这是定时器?什么意思呢??
      

  8.   

    因为你的各种预处理都是ajax,也就是说都是异步,so,需要一个前端的不断扫描状态的处理。
    多个验证就多个判断好了,当所有的ajax都success了,get the flag,now this flag is what u want.
      

  9.   

    加个全局变量被 只有在你代码里
     if(data=="yes"){的时候才给赋值true
    那么下边就是
    if(flag){
    if(变量是true)
    {
                    $("#registerId").submit();
    }
                }不就行了
      

  10.   

    你将falg最后设置成true了,你在ajax中的return 有用吗?
      

  11.   

    ajax默认是异步请求,你改成同步请求不就行了吗
      

  12.   

    这个问题 之前碰到过,你可以这样,在提交按钮上加上  onclick="return check();"这个check事件里如果校验不通过可以返回false  成功的话就返回true就行了