He encontrado un problema con la validación de un escrito manualmente la fecha valor que se encuentre fuera de la minDate o maxDate valores cuando se utiliza el selector de fechas-emergente.

Esto puede ser demostrado con el selector de fechas emergente en el angular de la interfaz de usuario del sitio siguiendo los pasos a continuación: http://angular-ui.github.io/bootstrap/#/datepicker

  1. Garantizar el min fecha de la opción está activada (min fecha debe ser igual a la de hoy)
  2. Tipo de ayer, la fecha para el datepicker-popup

Esto muestra un borde rojo alrededor de la línea de la datepicker (como es marcado como ng-invalid-a la fecha) sin embargo, el cuadro de entrada para el datepicker-popup es todavía válida.

Investigación más exhaustiva parece que el ng-invalid-atributo fecha ha sido en contra de que la parte emergente del selector de fecha y no en contra de la caja de entrada. Esto causa problemas porque en primer lugar, el usuario no puede ver que el elemento no es válido y, segundo, la ventana emergente no tiene un nombre de propiedad por lo que soy incapaz de verificar la validez de la ng-forma (por ejemplo, miformulario.myDate.$no válido

¿Alguien sabe alguna forma de evitar esto?

  • Ese enlace no funciona
InformationsquelleAutor user1873318 | 2014-05-08

2 Comentarios

  1. 9

    Usted puede hacer una validación adicional en ng de cambio para el campo de texto y setValidity de ese campo a false para lograr lo que desea. Aquí está una plunker que demuestra la idea.

    http://plnkr.co/edit/N9Hk9QFIfj3IXfHoWwbt?p=preview

    He añadido un poco de estilo css para obtener el rojo de la frontera para mostrar cuando el campo no es válido. La validez de la prueba es muy básico, te gustaría mejorar para permitir el día actual.

    • ¿Cuál es el punto angular de la min y max fechas si necesita cambiar() validación? Están allí sólo para los valores por defecto?
  2. 0

    Si usted tiene el conjunto de entrada como esta, <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()" />

    a continuación, en su controlador puede comprobar lo $scope.la fecha es en su $scope.change() función. Si $scope.date es undefined entonces no es válido. Si su null, a continuación, su vacío. Cualquier otra cosa es una fecha válida.

Dejar respuesta

Please enter your comment!
Please enter your name here