0
votes

I have a form where I have a conditionally required datepicker element. I can not initiate this element with any value as the user has to enter it. Datepicker format is dd/mm/yyyy. Issue is that it was working fine until I added ng-required. After ng-required condition added to the element, when user clicks on calendar, calendar default date is Dec 31 1969. It's very inconvenient to the user bringing that date to current date. I tried setting default date to today in datepicker options but no luck.

<div class="form-group col-md-3 required" ng-show="decision==true">
  <label class="control-label">Test Date</label>
  <div class="input-group">
    <input name="testDate" type="text" class="form-control" datepicker-popup="dd/MM/yyyy" ng-model="testDate" is-open="dpOpened.testDateTo"
    close-text="Close" onfocus="this.blur();" datepicker-options="dateOptions" ng-required="decision==true" required/>
    <span class="input-group-btn">
    <button type="button" class="btn btn-default" ng-click="datepickerPopup($event, 'testDateTo')">
      <i class="glyphicon glyphicon-calendar"></i>
    </button>
    </span>
  </div>
</div>

--controller.js--

$scope.datepickerPopup = function($event, opened) {
  $event.preventDefault();
  $event.stopPropagation();
  $scope.dpOpened[opened] = true;
}

$scope.dateOptions = {
  showWeeks : false,
  defaultDate : new Date()
};

$scope.dpOpened = {
  testDateTo : false,
};

$scope.today = function() {
  return new Date();
}
2

2 Answers

0
votes

You have the ng-model set to testDate but I don't see where you have set that in your controller. Try setting testDate = new Date(). See this relevant pull request

0
votes

I had the same issue.

You should NOT initialize the bsDatePicker field with new Date(). You must initialize with 'null' from formbuilder, even if it is a required field.