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

이 모델에서 무엇을 사용할 수 있나요? [plunker] (https://plnkr.co/)/[jsfiddle] (https://jsfiddle.net/) 등의 예를 작성하십시오. – GProst

답변

0

Here 내가 코드를 수정했습니다

  • 1) 당신은 shouldn 날짜를 비교하지 마라. 문자열로.
  • 2) 대신 form1.todate.$error의 당신은 form1.todate.$error.todateerror
+0

정말 고마워요. 그러나 그것은 (NaN) (번호가 아님) 콘솔에서 날짜를 읽을 수 있습니다. 내 날짜 형식에 따라 분할을 수정했습니다. 그러나 여전히 운이 없다. 디버그에서 날짜가 toDate 변수로 올바르게 설정됩니다. 하지만 콘솔에서는 데이터를 읽을 수 없습니다. 더 많이 파고 돌아올거야. – shabarinath