@ 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>
@ Voir
@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é
var validateMeta = $ ('# form123'). validate (); validateMeta.settings.ignore = "";
$.validator.setDefaults({ignore: ""});
$.validator.setDefaults({ ignore: [] });
J'ai rencontré ce même problème. Un champ masqué sur une page stockait un ID utilisateur, qui a été sélectionné dans une zone de texte de saisie semi-automatique. Cet ID a été validé pour garantir qu'un identifiant différent de zéro a été renvoyé. Nous voulions inclure cette validation dans le côté client.
Par défaut, jQuery validate ignore les champs cachés, les éléments avec une largeur et une hauteur nulles, ceux avec l'affichage CSS: aucun et tous les éléments avec un parent invisible (en utilisant les mêmes critères).
Le paramètre ignorer peut cependant être remplacé en ajoutant le script suivant (je viens de l'ajouter à mon script de validateur personnalisé avant d'appeler $ .validator.addMethod ()):
// By default validator ignores hidden fields.
// change the setting here to ignore nothing
$.validator.setDefaults({ ignore: null });
REMARQUE: Ce code ne fonctionnera pas s'il est exécuté à l'intérieur de la méthode document ready
Ou jQuery $(function () {})
.
Juste après avoir inséré le script pour la validation, définissez l'ignorer sur "":
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$.validator.setDefaults({
ignore: ""
});
</script>
}
essayer
var validator = $("#form-id").data('validator');
validator.settings.ignore = "";
Je ne sais pas pourquoi avez-vous besoin d'afficher les validations pour les champs que l'utilisateur ne peut pas voir ou modifier. Mais vous pouvez essayer ça. Au lieu de display:none
, appliquer visibility:hidden
et height:0
dans votre champ de saisie.
@using (Html.BeginForm("TestModelState", "RandD", FormMethod.Post, new {id="form123" }))
{
@Html.TextBoxFor(x => x.htmlText, new { style="visibility:hidden;height:0"})<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()" />
}