J'ai un formulaire de création pour créer un objet. Le modèle Créer a des propriétés uniquement visibles (.Hide, .Show ()) si une case à cocher est cochée et qui sont marquées requises (par attribut dans le modèle).
malheureusement lorsque la case à cocher n'est pas cochée, la validation requise est effectué sur les propriétés cachées. p>
Comment puis-je désactiver la validation requise pour ces propriétés? p>
J'ai essayé de définir la propriété Data-Val de l'élément d'entrée à FAUX, mais cela ne fait pas travail. p>
une idée? P>
Merci d'avance Tobias P>
Mise à jour: P>
Voici le code de script Java. La propriété Data-Val est définie correctement sur FALSE. Il semble que la validation ne se soucie pas de cette propriété. Il existe également l'attribut Data-Val-requis, mais il y a un texte que je ne pouvais pas sauvegarder. p>
7 Réponses :
Validation sans obstruction recherche cet attribut Je suppose que si vous faites un Il y a probablement un moyen plus approprié de le faire, mais sinon, prenez cela. P>
Cheers. P> data-val = "vrai" code> p>
$ ('# myCheckbox'). Données ("VAL '," FAUX ") CODE>, la validation saute un élément avec cet identifiant. P >
La case à cocher Affiche ou masque les champs d'entrée. Comme je l'ai écrit, j'ai déjà essayé de définir la propriété Data-Val de tous les champs de saisie à False.
La valeur par défaut dataannotationsModelvalidatorProvider code> ajoute un attribut requis à tous les types de valeur. Vous pouvez modifier ce comportement en ajoutant le code dans Cette réponse . P>
J'ai manipulé des cas comme celui-ci avec un attribut de validation personnalisé. Au lieu d'utiliser l'attribut requis pour les propriétés, vous pouvez attribuer un attribut requis et faire certaines de vos propriétés requises uniquement si une autre propriété est une autre valeur.
Voici un article sur la création d'un attribut comme celui-ci (l'exemple au milieu de La page sous la section "Un validateur personnalisé plus complexe"): http://www.devtrends.co.uk/blog/the-complete-Guide-a-validation-in-asp.net-mvc-3-part-2 < / p>
si votre case représente une propriété dans votre modèle, cela devrait fonctionner correctement. P>
Si vous ne voulez pas gérer cela avec un nouvel attribut de validation, vous devrez faire quelques choses supplémentaires. que simplement changer l'attribut Data-val en faux. Lorsque JQuery Validate PREMIER analyse votre formulaire, il stocke des valeurs dans les données du formulaire. Il suffit donc de changer de données-val ne suffit pas. Vous devez également supprimer les données de validation stockées et répliquer le formulaire. Voici un exemple: p>
lol, tout ce que je voulais faire était d'ajouter des champs de recherche à une page d'index. Merci
Le plug-in javascript discret fourni par MVC ne traite pas les propriétés de données à la volée. Au lieu de cela, il analyse les résultats sur le document prêt et les cache. P>
Essayez appeler $. validator.unobtriver.parse (MyForm) code> sur votre formulaire après avoir modifié la propriété en question pour voir si cela vous donne des résultats attendus. P>
Vous pouvez implémenter un validateur personnalisé comme "obligatoire". p>
qui gardera votre modèle de modèle assez évident (contrairement aux solutions à la clientèle que proposées). Cela vous permet de conserver la logique de validation séparée de la logique d'affichage (c'est ce que MVC est tout à propos). P>
Voir cette réponse: Validation conditionnelle dans ASP.NET MVC 3 P>
acclamations! p>
Il y a plusieurs façons de désactiver la validation discrète en Javascript, mais la plupart d'entre eux semble un peu hackish ...
La première option ne semble pas fonctionner pour moi dans MVC4.
Vous pouvez utiliser après jQuery strud> pour supprimer toutes les règles de validation de votre élément de même manière que vous pouvez utiliser nom de classe forte> comme, p> si vous souhaitez supprimer