2010-04-12 5 views
2

Dans mon application mvc asp j'utilise la validation côté client standard (DataAnnotations + MicrosoftAjax.js + MicrosoftMvcValidation.js). Je dois afficher un message contextuel (jGrowl) après une validation côté client réussie/non réussie (donc je ne peux pas utiliser ModelState.IsValid). Je recherche donc un drapeau standard qui indique l'état de validation côté client. Est-ce que quelqu'un le sait? Est-ce qu'il existe?Y at-il un indicateur "is valid" pour la validation côté client ASP .NET MVC?

Répondre

7

Je ne sais pas si MicrosoftMvcValidation expose cette fonction, mais en utilisant jQuery vous pouvez vérifier si l'un des champs de formulaire contiennent des erreurs:

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

+1 Très intelligent. – jfar

+0

Oui, je le sais et en fait maintenant j'utilise jQuery pour vérifier l'état de la validation. Mais je suis sûr qu'il y a des choses standard à faire. Mais merci quand même =) –

+2

Je pense que la variable devrait lire: "isInvalid" et non "isValid". – user2173353

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

Si vous utilisez le validate jquery discret, vous devriez utiliser que:

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

De: How to fire jQuery function only if form is valid - Darin Dimitrov

0
var pageValid = Page_ClientValidate(); 

Ceci est une fonction intégrée par .NET, il suffit de l'exécuter et vous saurez si tous les validateurs ont réussi. Vous pouvez également l'utiliser dans une fonction de vérification de formulaire onClientClick (return func()). et ajoutez plus de votre manipulation JS.

Questions connexes