2011-06-27 31 views
14

尋找一種方法來鎖定表單的客戶端失敗條件。如何掛鉤到jQuery的錯誤驗證MVC 3中不引人注目?

如果驗證失敗,我需要重新啓用提交按鈕,以便他們可以再次嘗試。

我發現以下內容:Using unobtrusive validation in ASP.NET MVC 3, how can I take action when a form is invalid?哪些方法可行,但我希望能夠從中心位置做到這一點,因爲表單可以從多個位置提交。

更新:

這個功能似乎運作良好假設你有一個類「.goButton」的輸入標籤。

<script language="javascript" type="text/javascript"> 
    $(".goButton").click(function() { 
     if (!$(this).closest("form").valid()) { 
      return false; 
     } 
     $(".goButton").after("Please wait..."); 
     $(".goButton").hide(); 
    }); 
</script> 

回答

24

然後,您可以從一箇中心位置掛鉤所有表單 - 只需注意所有表單都會被掛鉤。而不是在樣本中使用$("#formId"),只需使用$("form").submit(),並且該代表將被調用以進行任何表單的提交,並且在該方法中,您可以調用驗證檢查並返回true(提交表單)或false以阻止它。

像這樣的東西從我的頭頂

$("form").submit(function() { 
    if (!$(this).valid()) { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
}); 
+0

謝謝你,我相信這就是我一直在尋找。 –

+1

調用$(this).valid()在這裏實際上運行驗證邏輯,這正是我正在尋找的。在調用$(this).valid()之前,我無法獲得$(form).submit()事件中的.form-validation-error元素數。太多了! –

相關問題