2012-12-20 70 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