Я хочу включить проверку на определенных полях. Проверка должна показывать сообщения только тогда, когда установлен флажок - PullRequest
0 голосов
/ 29 июня 2019

Я хочу включить проверку на определенные поля. Проверка должна показывать сообщения только тогда, когда установлен флажок. Я пытаюсь добиться этого в Angular

form.cshtml

<input type ="checkbox" ng-click = "mainControl.reportUpdates()">
<input type = "text" date-validator = "type.date">
<ul messages = "mainform['date'+$index].$error">
   <li ng-message="required"> Required</li>
   <li ng-message = "maxdatevalidator">Date cannot be greater than today 
   </li>
<ul>

App.js

_module.directive('dateValidator', ['$rootScope','$parse',function($rootscope,$parse)])
{
  function maxDate(date)
   {
      var today = new Date();
      if(date!=null)
       return date>today
      else
       return true
   }
  return
  {
    require: 'ngModel',
    link : function(scope,element,attrs,ctrl)
    {
        scope.$watch(attrs.ngModel,function(newValue,oldValue))
        {
            if(newValue!=oldValue)
            {
                var check_date=maxDate(newValue)
                ctrl.setValidity('maxdatevalidator',check_date) ;             
            }
        }
    }
  }
}

1 Ответ

0 голосов
/ 30 июня 2019

Я бы поставил ng-show на ul ul, только если флажок установлен в true.Сначала вам понадобится ng-модель для флажка:

<input type="checkbox" ng-click="mainControl.reportUpdates()" ng-model="reportUpdates">

Затем вы можете добавить ng-show к ul:

<ul messages="mainform['date'+$index].$error" ng-show="reportUpdates">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...