AngularUI Datepicker отключение динамической даты

Я использую DatePicker AngularUI.

У меня есть два свидания, которые влияют друг на друга. Один из них - это, например, «дата начала», а другой - «дата окончания». Вместо того, чтобы создавать валидацию для обоих датпикеров, я хочу исключить возможность наличия недопустимых дат (т.е.дата окончания раньше, чем дата начала, и наоборот).

Есть ли способ повторно активировать атрибут date-disabled при выборе даты? (повторно активируйте отключение даты ДРУГОГО datepicker)

Мой plunkr: у меня есть дата начала и окончания, как вы можете видеть, когда открываете каждое средство выбора даты, вы не можете выбрать дату начала выше, чем дата окончания, и наоборот. Однако, если я изменю дату начала на 21 ноября, я хочу, чтобы указатель даты окончания обновился, чтобы дата 11/20 больше не была доступна для кликов. Есть какой-либо способ сделать это?

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


person changus    schedule 27.11.2013    source источник


Ответы (3)


Это можно сделать, используя атрибуты min и max в сочетании с наблюдением за значениями сборщиков. Посмотрите http://plnkr.co/edit/W5pb1boMLOHZFnWkMU8o?p=preview

person zergius    schedule 28.11.2013
comment
Из вашего плунжера я вижу один дефект. Если я сначала выберу дату окончания (02.10.2014), а затем перейду к выбору даты начала и щелкну сегодня (10.02.2014). Это позволяет мне выбрать сегодня (8.10.2014) в качестве даты начала, которая больше даты окончания (02.10.2014). - person Naveen Reddy; 09.10.2014

Вам действительно не нужен весь javascript. вот вилка предыдущего решения.

http://plnkr.co/edit/kXkzCeBTlxOpOyZKfTiN

если у вас есть два входа, например

         <input id="getTSStartDateInput" ng-model="StartDate" type="text" class="form-control ng-pristine ng-valid ng-valid-required" datepicker-popup="dd MMM yyyy" required="required" ng-required="true"/>  
           <input id="getTSEndDateInput" ng-model="EndDate" min="StartDate" type="text" class="form-control ng-pristine ng-valid ng-valid-required" datepicker-popup="dd MMM yyyy" required="required" ng-required="true"/>

он будет работать автоматически и отключит любую дату окончания, предшествующую дате начала, обратите внимание на ng-model = "EndDate" min = "StartDate", это все, что вам нужно.

person Abdullah Choudhury    schedule 05.05.2014

Я использовал простое решение добавления ng-change как в startDate, так и в endDate. Если startDate изменяется, установите minDate для endDate на startDate, и то же самое касается endDate. надеюсь, это поможет

person peace.rider    schedule 20.01.2017