2017-01-09 4 views
1

angular日付検証を試しています。todateは、現在の日付よりも日付を選択するとエラーメッセージが表示されます。しかし、出力は期待通りではありません。日付の選択時にエラーが発生しますが、デバッグブレークポイントで条件が正しくチェックされています。

plunkerリンク」:ここではplunker

コードです:。

$scope.form1submit=function(date){ 

     var today = new Date(); 
     var dd = today.getDate(); 
     var mm = today.getMonth()+1; //January is 0! 
     var yyyy = today.getFullYear(); 

     if(dd<10) { 
      dd='0'+dd 
     } 

     if(mm<10) { 
      mm='0'+mm 
     } 

     todayDate = mm+'/'+dd+'/'+yyyy; 
     console.log(todayDate); 
     var toDate = date.toDate; 
     var toDatelength = date.toDate.length; 


     if(toDate > todayDate && toDatelength > 0){ 

      $scope.form1.todate.$setValidity("todateerror", false); 

     }else{ 
      $scope.form1.todate.$setValidity("todateerror", true); 
     } 
     }; 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
<script src="http://www.jqueryscript.net/demo/Simple-Date-Picker-For-jQuery-AngularJS-Datepicker/"></script> 
<span class=""> 
     <label class="">to date</label> 
     <input id="toDate" name="todate" type="text" class="" 
       ng-model-options="{allowInvalid: true}" 
       placeholder="To Date" 
       data-datepicker="{theme: 'flat'}" 
       ng-model="date.toDate" 
       ng-disabled="date.fromdate" 
       ng-required="date.fromdate" /> 
     <span ng-show="form1.$submitted && form1.todate.$error"> 

      <div ng-message="todateerror" class="">To date is more than todays date</div> 
     </span> 
</span>  
+0

を使用する必要がform1.todate.$errorの? [plunker](https://plnkr.co/)/ [jsfiddle](https://jsfiddle.net/)などの例を作成してください。 – GProst

答えて

0

Here私はあなたのコードを修正しました

  • 1)あなたはするべきでありません日付を比較する文字列として。
  • 2)の代わりに、あなたのモデルにあるものform1.todate.$error.todateerror
+0

ありがとうございました。しかし、それはどこから与えるか(NaN)(数字ではない)をコンソールから日付から読むことができます。私は私の日付形式ごとに分割を修正しました。しかし、まだ運がありません。デバッグ時に、日付がtoDate変数に正しく設定されています。しかし、コンソールでは、私はデータを読み取ることができません。もっと掘り起こして戻ってくるだろう。 – shabarinath

関連する問題