微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 从检查值的ajax成功函数内部提交表单

我已经看过大约20个或更多关于这个主题的帖子,但它们要么对我没有意义,要么略有不同.

这也是一个非常简单的场景.我有一个表单,当它提交时,我做一个ajax调用,看看该电子邮件是否已被其他用户取走.如果不采取我想提交表格,如果是,请不要提交表格.

这是HTML

<form id='greatForm' action='godothat.PHP' method='post'>
<input type='submit' id='email'>
<button>Send</button>
</form>

JS

$('#greatForm').submit(function(){


        // GET THE VARS
        var email = $('#email').val();


         $.ajax({ 
            data: { 'field1' : email  },type: 'GET',dataType: 'json',url: 'url.PHP',beforeSend : function(){   },success: function(answer){   
                if(answer.error === false){
                         // Submit this form without doing the ajax call again
                } 
                if(answer.error === true){
                    // Not ok,don't submit this form
                }
            }
        });                               

        return false;   
    });

谢谢你的帮助.

**更新**
也许我没说错.我的意思是如果“answer.error === false”为真,那么submit函数应该返回true.

所以在AJAX完成时,如果answer.error为false,则提交应为true,反之亦然……

那更有意义吗?

解决方法

$('#greatForm').submit(function(){
    if(!$(this).attr('validated'))
    {
     // GET THE VARS
     var email = $('#email').val();


      $.ajax({ 
        data: { 'field1' : email  },success: function(answer){   
            if(answer.error === false){
                   $('#greatForm').attr('validated',true);
                   $('#greatForm').submit();
            } 
            if(answer.error === true){
                //display the errors
            }
        }
     });
     return false;  
    }                            
   return true;
});

这应该可以解决问题,如果已经验证,只需添加一个经过验证的属性即可.并且只有在未预设属性的情况下才验证表单,否则您提交.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐