我已经看过大约20个或更多关于这个主题的帖子,但它们要么对我没有意义,要么略有不同. 这也是一个非常简单的场景.我有一个表单,当它提交时,我做一个ajax调用,看看该电子邮件是否已
这也是一个非常简单的场景.我有一个表单,当它提交时,我做一个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 }, type: 'GET', dataType: 'json', url: 'url.php', beforeSend : function(){ }, success: function(answer){ if(answer.error === false){ $('#greatForm').attr('validated',true); $('#greatForm').submit(); } if(answer.error === true){ //display the errors } } }); return false; } return true; });
这应该可以解决问题,如果已经验证,只需添加一个经过验证的属性即可.并且只有在未预设属性的情况下才验证表单,否则您提交.