Jquery validation - afficher récapitulatif de la validation du cours désireux de validation?
Est-il possible d'obtenir jquery de validation pour afficher le récapitulatif de la validation à l'aide désireux de validation?
Je suis en utilisant MVC 3 (si c'est important) et mes formes valider chaque élément perd le focus:
$('#myform').validate({ onfocusout: function(element) { $(element).valid(); } };
Cette montre des erreurs individuelles sur chaque champ, mais je veux aussi montrer ces erreurs dans le récapitulatif de la validation du bloc. Toutefois, cette validation résumé ne s'affiche que lorsque le formulaire est soumis, et non sur le foyer perdu.
J'ai essayé d'accrochage dans showErrors, cependant que seul me donne le champ actuel de l'erreur, non pas de la liste des erreurs.
Pour être complet, voici le code du formulaire:
@using (Ajax.BeginForm(...))
{
<div class="field-panel">
@Html.EditorFor(m => m.PatientID)
...
</div>
<input type="submit" class="carecon-button-next" value="Next" />
@Html.ValidationSummary(null, new { @class = "validation-summary" })
}
Ajouté le reste de la page de code..
OriginalL'auteur lambinator | 2011-10-28
Vous devez vous connecter pour publier un commentaire.
Ok, je crois que j'ai compris cela.
La question est en fait due à l'utilisation de la discrète validation avec MVC 3, puisqu'il ne le jQuery de validation d'initialisation pour vous Donc, la seule façon de configurer la validation en utilisant
form.data("validator").settings
. Cependant, en essayant de mettre laerrorLabelContainer
par le biais de cette méthode, c'est à dire:... ne fonctionne pas, parce que jQuery de validation utilise uniquement cette valeur en interne dans sa fonction init (), pour configurer un tas d'autres paramètres tels que les conteneurs , etc. J'ai essayé l'émulation de ce qu'il fait, ou même l'appel de
$("#form").data("validator").init()
de nouveau après la mise à l'errorLabelContainer
, mais cela a causé le comportement bizarre et arrosé d'un tas d'autres paramètres.J'ai donc pris une approche différente. Tout d'abord, j'ai fourni un endroit pour MVC pour mettre dans l'erreur individuelle des chaînes à l'aide de
@Html.ValidationMessageFor()
, et l'ajout dedisplay:none
pour le garder caché:Puis, dans la
showErrors
de rappel, je copie ces chaînes dans le récapitulatif de la validation après appeldefaultShowErrors()
:Cela m'a donné le comportement que je voulais, montrer/cacher les erreurs de validation comme une liste dans le résumé que l'utilisateur de remplir les champs du formulaire.
OriginalL'auteur lambinator
J'ai eu des problèmes similaires et a écrit cela, il semble être un moyen facile d'obtenir le comportement que vous êtes à la recherche pour:
OriginalL'auteur bonneyab
C'est à partir de la page de démonstration; la
invalidHandler
et le code pour créer une erreur résumé. Mais il est déclenché surform
présenter qui n'est pas ce que vous avez demandé.Cependant, la
errorLabelContainer:
méthode ne nécessite pas deform
soumission. Selon les documents, "Des erreurs toutes les étiquettes sont affichées à l'intérieur d'une liste non ordonnée avec l'ID "messageBox", comme spécifié par le sélecteur passé comme errorContainer option. Toutes les erreurs éléments sont enveloppés à l'intérieur d'un élément li, pour créer une liste de messages."Ici est un brut de démonstration montrant la validation à l'aide de
onfocusout
. Il n'y a pas de bouton "soumettre" pour prouver ce point. Le#messageBox
accumule tous les messages qu'elles sont collectées.http://jsfiddle.net/sparky672/bAN2Q/
errorLabelContainer
à mon résumé de la div, mais en vain -- il encore que montre les erreurs dans le conteneur sur "soumettre".Voir la démo, je l'ai ajouté à ma réponse. Il n'a même pas de bouton "soumettre".
Merci pour la démo!! Il a aidé énormément dans la compréhension de ce que le problème était vraiment avec MVC 3..
OriginalL'auteur Sparky