2012-03-14 196 views
0

在我的mvc 3應用程序中,我想在用戶試圖提交表單時執行一個函數。在該功能中,我將檢查多個字段以確定用戶在提交之前是否提供了必要的數據。MVC自定義客戶端驗證

如何在用戶嘗試提交表單時連接腳本以執行操作?

(自定義驗證函數中,我需要檢查,如果各項複選框被選中,如果是的話,額外的值從dropdownlists等選擇)

回答

5

我怎麼能聯播當用戶試圖提交表單被執行的腳本?

你可以訂閱.submit事件的形式,並呼籲標準的客戶端驗證後調用自定義函數:

$(function() { 
    $('form').submit(function() { 
     if (!$(this).valid()) { 
      // standard client validation failed => prevent submission 
      return false; 
     } 

     // at this stage client validation has passed. Here you could call your 
     // function and return true/false depending on the result of your 
     // custom function 
    }); 
}); 

另一種可能性是編寫自定義驗證屬性和掛鉤自定義適配器如this answersimilar one所示。

+0

丹吉特,打我到20秒! – Martin 2012-03-14 12:29:39

0

在視圖(剃刀或Java),你會在html中定義一個腳本,並在那裏進行客戶端驗證。

例如:

<script> 
    //define your script here, ie. $.(#tagtovaildate).validate(); 
</script> 

<html> 
    //code 
</html> 
2
$('#formId').submit(function() { 
    var standardIsValid = $(this).validate().form(); 
    var customIsValid = customValidations(); 
    if (!standardIsValid || !customIsValid) { 
     return false; 
    } 
});