2013-11-27 4 views
7

Я использую оператор AngularUI datepicker.AngularUI Отключение динамической даты Datepicker

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

Есть ли способ повторно активировать атрибут отключения даты при выборе даты? (повторное включение даты с отключенной функцией OTHER datepicker)

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

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

ответ

8

Можно сделать это с помощью мин и макс атрибутов в сочетании с просмотром значений сборщиков. Посмотрите на http://plnkr.co/edit/W5pb1boMLOHZFnWkMU8o?p=preview

+0

который сработал отлично, спасибо! – changus

+0

Отличная работа, спасибо – jayM

+0

С вашего плункера я вижу один недостаток. Если я сначала выберу дату окончания (10/2/2014), а затем перейдите к выбору даты начала и нажмите сегодня (10/0/2014). Это позволяет мне выбрать сегодня (10/8/2014) в качестве даты начала, которая больше даты окончания (10/2/2014) –

4

Вам действительно не нужен весь 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"/> 

он будет автоматически работать и отключить любую конечную дату, которая предшествует дате начала Обратите внимание на нг-модель = «EndDate» мин = «StartDate», это все, что вам нужно.

0

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

Смежные вопросы