AngularJS - проверять только если одно поле больше другого - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два поля ввода, одно из них From Year, а другое To Year.Я должен подтвердить кнопку отправки формы, только если To Year больше значения From Year.

Это код для года:

<div class="col-md-6 no-pad-right">
 <label>Tenure From Year</label>
 <input name="tenure_from_year" ng-model="joinFormData.tenureFromYear" name="tenure_from_year" class="form-control" placeholder="2014" type="text" ng-required="joinFormData.memberType == 'alumni'" ng-maxlength="4" ng-pattern="/(?:(?:19|20)[0-9]{2})/">
 <span ng-show="joinForm.tenure_from_year.$error.pattern || joinForm.tenure_from_year.$error.maxlength">
    <span class="red-color">Enter correct year!</span>
 </span>
</div>

Этокод для года:

<div class="col-md-6 no-pad-right">
  <label>Tenure To Year</label>
 <input name="tenure_to_year" ng-model="joinFormData.tenureToYear" name="tenure_to_year" class="form-control" placeholder="2014" type="text" ng-required="joinFormData.memberType == 'alumni'" ng-maxlength="4" ng-pattern="/(?:(?:19|20)[0-9]{2})/">
 <span ng-show="joinForm.tenure_to_year.$error.pattern || joinForm.tenure_to_year.$error.maxlength">
  <span class="red-color">Enter correct year! </span>
 </span>
</div>

Кнопка отправки отключена, если форма недействительна

<button type="submit" class="btn btn-default btn-save-custom"  ng-click="joinLeap()" ng-disabled="joinForm.$invalid" >Submit</button>

Так как я могу проверить поля от и до года, чтобы разрешить отправкукнопка, когда годы действительны.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Сравните оба поля ng-model внутри метода joinLeap(), который вы упомянули в ng-click

$scope.dateValidation = false;

$scope.joinLeap = function (joinFormData) {
   if (joinFormData.tenureToYear > joinFormData.tenureFromYear) {
      $scope.dateValidation = true;
   } else {
      $scope.dateValidation = false;
   }
}

Передайте параметр через ng-click метод

<button type="submit" class="btn btn-default btn-save-custom"  ng-click="joinLeap(joinFormData)" ng-disabled="joinForm.$invalid || !dateValidation" >Submit</button>

Iдумаю, это поможет вам.установите значение true, false для dateValidation согласно требованию.

0 голосов
/ 20 сентября 2018

Вы можете использовать часы.

$scope.validate = false;
$scope.$watch('joinFormData.tenureFromYear', function (newVal, oldVal) {
  if (newVal > oldVal) {
     $scope.validate = true;
  } else {
     $scope.validate = false;
  }
});
...