2017-01-09 75 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

什么是你的模型?创建一个[plunker](https://plnkr.co/)/ [jsfiddle](https://jsfiddle.net/)等例子,请 – GProst

回答

0

Here我已经固定的代码

  • 1)你不应该比较日期作为一个字符串。
  • 2)替代form1.todate.$error你必须使用form1.todate.$error.todateerror
+0

非常感谢。但是它能够从控制台给出(NaN)(不是数字)的日期读取。我按照我的日期格式修改了分割。但仍然没有运气。在调试时,日期被正确设置为toDate变量。但在控制台中,我无法读取数据。将挖掘更多,并回来。 – shabarinath