2010-04-12 30 views
2

在我的asp mvc應用程序中,我使用標準的客戶端驗證(DataAnnotations + MicrosoftAjax.js + MicrosoftMvcValidation.js)。 我需要在成功/不成功的客戶端驗證(所以我不能使用ModelState.IsValid)後顯示一些彈出消息(jGrowl)。 因此,我搜索了一些表示客戶端驗證狀態的標準標誌。有人知道嗎?它存在嗎?ASP .NET MVC客戶端驗證有一些「有效」標誌嗎?

回答

7

我不知道,如果MicrosoftMvcValidation暴露出這樣的功能,但使用jQuery你可能會檢查是否有任何表單字段包含錯誤:

var isValid = $('#formId .input-validation-error').length > 0; 
+0

+1非常聰明。 – jfar 2010-04-12 15:37:40

+0

是的,我知道這一點,實際上現在我使用jQuery來檢查驗證狀態。但我確定有一些標準的事情可以做到這一點。不過謝謝你=) – 2010-04-13 07:05:40

+2

我認爲這個變量應該是:「isInvalid」而不是「isValid」。 – user2173353 2015-06-15 08:28:43

0
  // Now get the validation context and call the validate() method 
      var myForm = $("#MainForm"); 
      var formContext = myForm[0]['__MVC_FormValidation']; 
      var errors; 
      if (formContext) { 
       // validate the form 
       errors = formContext.validate("submit"); 
      } 
      if (!formContext || errors.length == 0) { 
       // no errors so submit to server 
       ... 
      } else { 
       // found errors 
       ... 
      } 
0

如果您使用的是JQuery驗證不顯眼,你應該使用:

$(function() { 
    $('#formid').submit(function() { 
     if (!$(this).valid()) { 
      $('#validation-summary').show(); 
     } 
    }); 
}); 

來源:How to fire jQuery function only if form is valid - 達林季米特洛夫

0
var pageValid = Page_ClientValidate(); 

這是一個由.NET構建的函數,只需運行它即可知道所有驗證器是否通過。 你也可以在FormClientClick函數中使用它(返回func())。並添加更多的JS操作。