MVC: comment activer la validation côté client sur des champs masqués
@Scripts
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
@Vue
@using (Html.BeginForm("TestModelState", "RandD", FormMethod.Post, new {id="form123" }))
{
@Html.TextBoxFor(x => x.htmlText, new { style="display:none"})<br />
@Html.ValidationMessageFor(x => x.htmlText)
<div>
@Html.TextBoxFor(x => x.Uprop1)<br />
@Html.ValidationMessageFor(x => x.Uprop1)
</div>
<input type="submit" value-="Submit" onclick="abc()" />
}
CE que j'ai essayé
- Remplacé ignorer: "cachés", avec ignorer: ""à l'intérieur de validate.js
- var validateMeta = $('#form123').validate();
validateMeta.les paramètres.ignorer = ""; $.validator.setDefaults({ignore: ""});
$.validator.setDefaults({ ignore: [] });
source d'informationauteur RollerCosta
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce même problème. Un champ caché sur une page était de stocker un ID utilisateur, qui a été sélectionné à partir d'une saisie semi-automatique de la zone de texte. Cet ID a de validation pour s'assurer qu'un non-zéro id a été posté en arrière. Nous avons voulu inclure cette validation dans le côté client.
Par défaut de jQuery valider ignore les champs cachés, des éléments à zéro de la largeur et de la hauteur, ceux avec css display:none et tous les éléments avec un invisible parent (en utilisant les mêmes critères).
L'ignorer paramètre peut toutefois être remplacée par l'ajout du script suivant (j'ai juste ajouté ça à mon validateur personnalisé script avant d'appeler $.programme de validation.addMethod()):
REMARQUE: Ce code ne fonctionnera pas si c'est courir à l'intérieur de la
document ready
ou jQuery$(function () {})
méthode.Juste après que vous insérez le script pour l'ensemble de validation de l'ignorer pour "":
Je ne suis pas sûr pourquoi avez-vous besoin de spectacle de validations pour les champs que l'utilisateur ne peut pas les voir ou de les modifier. Mais vous pouvez essayer ce. Au lieu de
display:none
appliquervisibility:hidden
etheight:0
à votre champ de saisie.essayer