AngularUI datepicker-popup - tapé manuellement la date et min/max de dates
J'ai trouvé un problème avec la validation d'un tapé à la machine, la date de valeur qui se situe à l'extérieur de la minDate ou maxDate valeurs lors de l'utilisation du datepicker-popup.
Ceci peut être prouvé avec le datepicker popup sur l'angulaire de l'interface utilisateur du site en suivant les étapes ci-dessous: http://angular-ui.github.io/bootstrap/#/datepicker
- Assurer la min date de l'option est activée (min date doit être égale à aujourd'hui)
- Type dans hiers date pour le datepicker-popup
Cela montre une bordure rouge autour de la ligne datepicker (comme il est marqué comme ng-invalide-date), cependant la zone d'entrée pour le datepicker-popup est toujours valide.
Sur la poursuite de l'enquête, il semble que la ng-invalide-date de l'attribut a été défini à l'encontre de la popup partie de datepicker et pas contre l'entrée de la boîte. Cela provoque des problèmes parce que tout d'abord, l'utilisateur ne peut pas voir que l'élément n'est pas valide et d'autre part le popup n'est pas une propriété de nom donc je ne suis pas en mesure de vérifier la validité de la ng-forme (par exemple, myForm.madate.$non valide
Quelqu'un sait-il moyen de contourner ce problème?
OriginalL'auteur user1873318 | 2014-05-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire une validation supplémentaire sur ng-changement pour le champ de texte et setValidity de ce champ de faux pour obtenir ce que vous voulez. Voici une plunker qui illustre l'idée.
http://plnkr.co/edit/N9Hk9QFIfj3IXfHoWwbt?p=preview
J'ai ajouté un peu de style css pour obtenir la bordure rouge pour afficher lorsque le champ n'est pas valide. La validité du test est très simple; vous voulez l'améliorer pour permettre le courant de la journée.
OriginalL'auteur lmyers
Si vous avez le jeu de données d'entrée comme cela,
<input type="text" class="form-control" uib-datepicker-popup="{{format}}" ng-model="date" is-open="open" datepicker-options="datePickerDateOptions" close-text="Close" ng-change="change()" />
puis dans votre contrôleur, vous pouvez vérifier que $champ d'application.la date est dans votre
$scope.change()
fonction. Si$scope.date
estundefined
puis son pas valide. Si sonnull
alors qu'il se vide. Tout le reste est une date valide.OriginalL'auteur Derekedelaney