Disable Future Dates in Bootstrap DatePicker in AngularJS

mahesh213
 
on Feb 18, 2020 11:15 PM
Sample_131215.zip
3994 Views

Hi,

How to disable future days in datepicker

i am using below code to dispaly dates

could you please help me

Set Default Date in Bootstrap Datepicker in AngularJS

Download FREE API for Word, Excel and PDF in ASP.Net: Download
dharmendr
 
on Feb 19, 2020 02:41 AM

Hi mahesh213,

Check this example. Now please take its reference and correct your code.

HTML

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Disable Bootstrap DatePicker Future Date</title>
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" />
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.min.css" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <script type="text/javascript" src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/js/bootstrap-datepicker.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.9/angular.min.js"></script>
    <script type="text/javascript">
        var app = angular.module('MyApp', []);
        app.directive('datepicker', function () {
            return {
                restrict: 'A',
                // Always use along with an ng-model
                require: '?ngModel',

                link: function (scope, element, attrs, ngModel) {
                    if (!ngModel) return;
                    var startDate = !attrs.minDate ? '' : new Date();
                    var endDate = !attrs.maxDate ? '' : new Date();
                    var multiDate = !attrs.multiDate ? false : true;
                    var todayHighlight = !attrs.todayHighlight ? false : true;

                    ngModel.$render = function () {
                        element.datepicker('update', ngModel.$viewValue || '');
                    };

                    element.datepicker({
                        startDate: startDate,
                        endDate: endDate,
                        multidate: multiDate,
                        todayHighlight: todayHighlight
                    }).on("changeDate", function (event) {
                        scope.$apply(function () {
                            ngModel.$setViewValue(event.date);
                        });
                    });
                }
            };
        });
        app.controller('MyController', function ($scope) {
            var firstDay = (new Date().getMonth() + 1) + "/01/" + new Date().getFullYear();
            $scope.eventdate = firstDay;
            $scope.MaxDate = new Date();
        });
    </script>
</head>
<body ng-app="MyApp" ng-controller="MyController">
    <input datepicker ng-model="eventdate" min-date="" max-date="true" multi-date=""
        today-highlight="true" />
</body>
</html>

Demo

For more options refer below link.

bootstrap datepicker 1.3.0