2013-10-09 75 views
0

在我能夠執行和AJAX更新之前,我一直試圖驗證我的表單數據。所以基本上我試圖實現的是在ajax更新函數之前驗證表單輸入數據。我不知道我會放在功能下面的方法中驗證: 我的AJAX更新功能:在更新之前驗證字段

$("#updateUser").click(function() { 
      $.ajax({ 
       type: "POST", 
       url: "${pageContext.request.contextPath}/updateUser", 
       data: $("#updateForm").serialize(), 
       success: function(response) { 
        $("#alert").show(); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert("Status: " + textStatus); alert("Error: " + errorThrown); 
       } 
      }); 
     }); 

這是我試圖驗證表單:

<form id="updateForm"> 
        <input type="hidden" id="id" name="id" /> 
        Name: 
        <input type="text" name="name" id="name" /> 
        <br /> 
        User name: 
        <input type="text" name="username" id="username" /> 
        <br /> 
        Email: 
        <input type="text" name="email" id="email" /> 
        <br /> 
        Authority 
        <input type="text" name="authority" id="authority" /> 
        <br /> 
       </form> 

任何建議,請幫助,我是新來的JavaScript。謝謝

+0

$( 「#UpdateUser兩個」)。點擊(函數(){如果(!有效($(「#updateForm 「))return false; ... - 在哪裏和什麼是#updateUser – mplungjan

+0

#updateUser其實是這個表單後的一個按鈕,我忘了在問題中發帖 – Maff

回答

1

您應該在發送ajax調用之前放置您的驗證代碼。

$("#updateUser").click(function() { 
var allright = true; 
if ($('#name').val() == ''){ 
    allright = false; 
    highlight_input('#name'); 
} 
if (allright){ 
     $.ajax({ 
      type: "POST", 
      url: "${pageContext.request.contextPath}/updateUser", 
      data: $("#updateForm").serialize(), 
      success: function(response) { 
       $("#alert").show(); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Status: " + textStatus); alert("Error: " + errorThrown); 
      } 
     }); 
} 
    }); 
+0

或者(!allright)return; – mplungjan

+0

這太棒了!我想這就是我要找的東西 – Maff

+0

肯定:)你可以自由地做你的感受如果有很多邏輯,那麼更好的辦法是將這些分離成一些函數,並在邏輯條件下使用它們。 – alex

1

如果您正在使用jQuery validation您可以在下面的方法做

$("#updateUser").click(function() { 

    var form = $("#updateForm"); 
    form.validate(); 
    if(form.valid()){ 
     $.ajax({ 
      type: "POST", 
      url: "${pageContext.request.contextPath}/updateUser", 
      data: $("#updateForm").serialize(), 
      success: function(response) { 
       $("#alert").show(); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Status: " + textStatus); alert("Error: " + errorThrown); 
      } 
     }); 
     } 
    }); 
相關問題