Question

J'ai rencontré un problème en essayant de modifier un formulaire que je n'ai pas construit moi-même.

Le formulaire a un champ de saisie asp: pour une valeur de date, qui est vérifiée par un requiredFieldVal et un rangeVal. Le type de valeur de rangeVal est défini sur " date " et valeur minimale 2000-01-01: valeur maximale 3000-01-01

En ce qui concerne le problème, j'essaie d'ajouter afin que l'utilisateur puisse également saisir la date sous la forme "20000101". en d'autres termes, sans le "-".

J'ai essayé d'ajouter un autre rangeVal avec le type Integer et les valeurs min, max et de les placer dans le même groupe de validation, mais cela n'a pas fonctionné.

Comment permettre à l'utilisateur d'utiliser les deux formats (l'un ou l'autre) dans le champ de saisie de la date.

Merci d'avance!

Était-ce utile?

La solution

Vous pouvez utiliser un validateur d'expression régulière à la place du validateur d'intervalle. Je suis un peu rouillé avec Regex, mais je suis sûr que vous pouvez trouver quelque chose ici.

Voici un lien vers la page des dates:

http://www.regular-expressions.info/dates.html

essayez ceci, je pense que cela fonctionnera. Si non, faites le moi savoir et je vais travailler sur la corriger:

((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))

Un autre article a soulevé un point où cette expression rationnelle ne validera pas certaines dates non valides, comme le 31 fév. Dans ce cas, je créerais simplement une classe de validation qui hériterait du validateur de l'expression rationnelle et remplacerais la méthode EvaluateIsValid et vérifierait si est une date réelle. Cela permet la plupart des validations effectuées du côté client, la sauvegarde se situant au niveau du serveur, qui devrait de toute façon effectuer une validation secondaire.

Autres conseils

Lorsque vous utilisez plusieurs contrôles de validation pour valider un contrôle unique, tous les contrôles de validation doivent réussir.

Vous pouvez utiliser une expression régulière (comme le souligne Kevin), mais il sera difficile de procéder proprement à la validation requise (vérifier que la valeur est un objet DateTime valide). .

Je suggérerais d'écrire votre propre CustomValidator , puis utilisez-le pour valider vos valeurs comme vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top