2016-08-02 11 views
2

現在の日付の30日前に日付を選択することができないようにdatepickerに検証を追加しようとしています日付ともui-bootstrapバージョン1.3.3を使用している場合、角度ui-bootstrap datepickerで最小日付と最大日付の検証を追加できません

<div class="form-group" ng-class="{ 'has-error' : memberForm.dateOfBirth.$invalid && (memberForm.dateOfBirth.$touched || memberForm.$submitted) }"> 
    <label for="Date of Birth" class="" ng-hide="memberForm.dateOfBirth.$invalid && (memberForm.dateOfBirth.$touched || memberForm.$submitted)">Date of Birth(dd/mm/yyyy)*</label> 
    <label class="error_message_text" ng-show="memberForm.dateOfBirth.$invalid && (memberForm.dateOfBirth.$touched || memberForm.$submitted)"> Date of birth is required </label> 
    <p class="input-group" style="width:270px;"> 
    <input type="text" class="form-control" name="dateOfBirth" uib-datepicker-popup="dd/MM/yyyy" ng-model="dt" is-open="popup1.opened" datepicker-options="dateOptions" ng-required="true" close-text="Close" alt-input-formats="altInputFormats" /> 
    <span class="input-group-btn"> 
     <button type="button" class="btn btn-default" ng-click="open1()"><i class="glyphicon glyphicon-calendar"></i></button> 
    </span> 
    </p> 
</div> 

picker-将来の30日は、私は日付のコードの下に使用しています任意の日付を選択することはできませんし、私は、スクリプトの下に使用しています -

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.js"></script> 
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script> 
<link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 

私はここにplunkerを作成しています - https://plnkr.co/edit/RmDyhjKpEJvTMjNRp5LE?p=preview

コードでこの検証をどのように達成することができますか?

+0

あなただけの '分 - 日付= "MinDateプロパティ"'と 'MAX-日付= "maxDateの"'の – Matheno

+1

可能な複製を追加することができ、[日付ピッカー角度で最大日付を設定する方法JS?](http://stackoverflow.com/questions/30687388/how-to-set-max-date-in-datepicker-angular-js) – Matheno

+0

現在の日付として最小日付を設定し、.addDays(30 )。 – Aby

答えて

1

のためにこれを使用することができます:あなたはdate.setDate(..)を呼び出すと

$scope.minDate = date.setDate((new Date()).getDate() - 30); 

はそれが日付オブジェクトを返しますdoesnotので、この

を行います
$scope.toggleMin = function() { 
    var date = new Date(); 
    date.setDate((new Date()).getDate() - 30); 
    $scope.minDate = date; 
    }; 
    $scope.toggleMin(); 


var date1 = new Date(); 
date1.setDate((new Date()).getDate() + 30); 
$scope.dateOptions.maxDate = date1; 

少し修正 - (追加された.dateOptionsは最小日付と最大日付を割り当てている)

$scope.toggleMin = function() { 
     var date = new Date(); 
     date.setDate((new Date()).getDate() - 30); 
     $scope.minDate = date; 
     }; 
     $scope.toggleMin(); 

    // Add this for maxDate, no code was there in plunker 
    var date1 = new Date(); 
    date1.setDate((new Date()).getDate() + 30); 
    $scope.dateOptions.maxDate = date1; 

回答Plunker- https://plnkr.co/edit/RmDyhjKpEJvTMjNRp5LE?p=preview

+0

私のプランカを更新しましたが、まだ機能していません。私のプランカをチェックして、どこに行方がいないのかを教えてください。 @Aman – Aanchal

+0

あなたはあなたが直面している問題について具体的であるか、あなたが得ているエラーメッセージであなたの質問を更新することができます。 –

+0

私の問題は私のコードでは、私は30日前に最大日付を30日に将来設定することができません – Aanchal

1

あなたは問題がここにある検証

var today = new Date() 
var priorDate = new Date().setDate(today.getDate()-30) 
+0

私はこれで試してみましたが、うまく動かず、私のプランカを更新しました。 – Aanchal

関連する問題