Besoin d'être validées que si le champ est visible
Je suis en utilisant le [Required]
attribut pour la validation côté client dans ASP.NET MVC 3.
La classe ressemble comme:
public class User
{
[Required(ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
}
Je veux le domaine FirstName
être validée que si elle est visible, ce qui sera montré qu'à certaines conditions. Comment puis-je le faire?
J'ai utilisé les suivants, mais encore il ressemble à valider pour le champ de ce champ caché.
$('#registerForm').validate({ ignore: ":not(:visible)" });
- Je suppose que, si vous regardez attentivement, vous trouverez que l'ajout d'ignorer les instructions en javascript, les arrêts de la validation côté client. Mais sur le post, côté serveur de validation des coups de pied dans et sera de retour une page avec des messages de validation.
Vous devez vous connecter pour publier un commentaire.
Avec des conseils de @Josias, je suis en mesure d'obtenir à mon exigence.
Ajouter le RequiredIfAttribute classe et le javascript. Reportez-vous Conditionnelle de Validation ASP.NET MVC 3
Et dans la classe, ajoutez la
RequiredIf
caractéristique:et en aspx:
Définir la valeur de
hFirstName
à 'true' si le champ FirstName est caché et "faux", si elle est visible.La magie fonctionne avec ces changements. Grâce à @Josias Ruddell pour son réponse
Je voudrais créer une condition nécessaire de l'attribut. Il y a un bon article sur la création d'un avec jQuery validation ici.
Une autre option: vous pouvez faire référence à un projet comme Toute épreuve de validation (codeplex) qui propose cette fonctionnalité et les scripts client.
En plus, vous pouvez utiliser ajax pour charger vos vues partielles de sorte qu'ils ne sont jamais sur la page lorsqu'elle est cachée. Cela permettrait d'éviter conditionnelle de validation complètement.
Tenter ma personnalisé la validation de l'attribut:
Il prend en charge de multiples conditions.
Un peu en retard,
Mais voici ma solution.
Juste un héritage de la Nécessaire qui va agir de la même manière, sauf qu'il ne se déclenchera que si le champ s'il est inclus dans la publication des touches.