9
votes

Désactiver la validation requise par JavaScript

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.

Comment puis-je désactiver la validation requise pour ces propriétés?

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.

une idée?

Merci d'avance Tobias

Mise à jour:

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. xxx


0 commentaires

7 Réponses :


0
votes

Validation sans obstruction recherche cet attribut data-val = "vrai"

Je suppose que si vous faites un $ ('# myCheckbox'). Données ("VAL '," FAUX ") , la validation saute un élément avec cet identifiant.

Il y a probablement un moyen plus approprié de le faire, mais sinon, prenez cela.

Cheers.


1 commentaires

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.



-1
votes

La valeur par défaut dataannotationsModelvalidatorProvider ajoute un attribut requis à tous les types de valeur. Vous pouvez modifier ce comportement en ajoutant le code dans Cette réponse .


0 commentaires

23
votes

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.

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: xxx


1 commentaires

lol, tout ce que je voulais faire était d'ajouter des champs de recherche à une page d'index. Merci



2
votes

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.

Essayez appeler $. validator.unobtriver.parse (MyForm) sur votre formulaire après avoir modifié la propriété en question pour voir si cela vous donne des résultats attendus.


0 commentaires

-1
votes

Vous pouvez implémenter un validateur personnalisé comme "obligatoire".

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).

Voir cette réponse: Validation conditionnelle dans ASP.NET MVC 3

acclamations!


0 commentaires


7
votes

Vous pouvez utiliser après jQuery pour supprimer toutes les règles de validation de votre élément xxx

de même manière que vous pouvez utiliser nom de classe comme, xxx

si vous souhaitez supprimer règle spécifique , faites comme ça xxx


0 commentaires