angular ui-bootstrap datepicker mindate not validated when typed in
<p>I have a form with a ui-bootstrap datepicker. I want to prevent the date from being in the past.</p>

<p>I set the min-date setting on the directive to a <code>new Date()</code> as shown below. This correctly prevents selection of dates in the past when using the popup, however I can still type in a date in the past and this validates OK.</p>

<p>How can I enforce min-date validation on dates that are typed in?</p>

<p>Plunkr: <a href="https://plnkr.co/edit/EHO1BG8BspNMvsoKT30l?p=preview" rel="noreferrer">https://plnkr.co/edit/EHO1BG8BspNMvsoKT30l?p=preview</a></p>

<p><strong>Html:</strong></p>

<pre><code>&lt;div class="input-group"&gt;
    &lt;input type="text" 
           class="form-control" 
           uib-datepicker-popup="{{format}}" 
           ng-model="dt" 
           is-open="popup1.opened" 
           min-date="minDate" 
           datepicker-options="dateOptions" 
           ng-required="true" 
           close-text="Close"
           alt-input-formats="altInputFormats"
           name="dt"/&gt;
    &lt;span class="input-group-btn"&gt;
        &lt;button type="button" class="btn btn-default" ng-click="open1()"&gt;
            &lt;i class="glyphicon glyphicon-calendar"&gt;&lt;/i&gt;
        &lt;/button&gt;
    &lt;/span&gt;
&lt;/div&gt;
</code></pre>

<p><strong>JS:</strong></p>

<pre><code>app.controller('MainCtrl', function($scope) {
  $scope.dt = new Date();
  $scope.minDate = new Date();
  $scope.format = "dd/MM/yyyy";
  $scope.altInputFormats = ['d!/M!/yyyy'];
  $scope.dateOptions = {
    formatYear: 'yy',
    startingDay: 1
  };

  $scope.popup1 = {
    opened: false
  };

  $scope.open1 = function() {
    $scope.popup1.opened = true;
  };
});
</code></pre>