2012-12-20 71 views
0

我想根据获取的数据将条件放在jQuery get请求上。get()请求中的条件

这里是我的功能:

function validateForm() { 
    var username = $('#username').val() 
    var result = '' 

    $.get(
     '/auth_validate_username/', 
     { 'result': result }, 
     function(data) { 
      $.post(
       '/auth_validate_username/', 
       { 'username': username }, 
       function(data) { 
        $('.error_message').html(data); 
       } 
      ); 
     } 
    ); 
    return false; 
}; 

HTML:

<form method="post" onsubmit="return validateForm();"> 
    <input id='username' type="text" name="username"/> 
    <div class='error_message'></div> 
    <button type="submit">Valider</button> 
</form> 

我想提出一个条件,以便如果result我与我的get功能得到的是不为空,则表单未提交。但如果result != '',那么我想要提交表单。

关于如何将条件放在我的get请求中的表单上的任何想法?

+0

您需要使用表单验证程序插件或在其中创建自定义。 – Rafee

+0

表单验证器?如果陈述如何?顺便说一句,你的引用围绕''result''和''username''作为对象键是没有必要的。 – Aesthete

回答

3

get请求之后执行的函数中,您可以执行任何javascript语句。包括if

function validateForm() { 
    var username = $('#username').val() 
    var result='' 

    $.get(
     '/auth_validate_username/', 
     { 'result': result }, 
     function(data) { 

      // Magical line there 
      if (data !== '') { 

       $.post(
        '/auth_validate_username/', 
        { 'username': username }, 
        function(data) { 
         $('.error_message').html(data); 
        } 
       ); 
      } 
     } 
    ); 
    return false; 
}; 
+0

谢谢。我想添加的条件是:if(data!==''){return false;}。问题是我希望返回false;应用于函数validateForm(),以便我的表单不被提交。当我尝试它时,情况并非如此。 – Marcolac

+0

@Marcolac然后你可以玩'e.preventDefault()'。在'validateForm'函数中传递'e'并使用'e.preventDefault()'。 –

+0

好的,谢谢。我不知道有关e.preventDefault()的一些信息。我会检查如何使用它。感谢您的帮助。 – Marcolac