2015-09-21 2 views
0

У меня есть настраиваемая директива, которая работает, когда я меняю значение ввода, но когда я отправляю форму без изменения директивы значения поля ввода, не отображается сообщение об ошибке.Как вызвать настраиваемую директиву в форме submit

HTML код:

<form name="myform" role="form" class="form-horizontal" method="post" novalidate> 
     <div class="form-group"> 
      <label class="control-label col-sm-3" for="firstName">First name :</label> 
      <div class="col-sm-9"> 
      <input name='firstName' class="form-control" type='text' required ng-model='name' string> 
</div> 
     </div> 
<div class="form-group"> 

      <input type="submit" value="Submit" class="btn btn-success" /> 
     </div> 

    </form> 

директива:

validationModule.directive('string', function() { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 

     link: function (scope, element, attr, ctrl) { 
      function validationError(value) { 

       if (value.length < 1) { 
        ctrl.$setValidity('required', false); 
        //showPopOver(element, "Required field"); 
        errorValidation(element, "Required field"); 
       //  $(element).popover('show'); 
       } 
       if (/[a-zA-Z]/.test(value)) { 
        ctrl.$setValidity('invalid', true); 
        // $(element).popover('destroy'); 
        successValidation(element); 
       } 
       if (/[0-9]/.test(value)) { 
        ctrl.$setValidity('invalid', false) 
        errorValidation(element, "number not allowed"); 
        // showPopOver(element, "number not allowed"); 
       // $(element).popover('show'); 
       } 

       return value; 
      } 
      ctrl.$parsers.push(validationError); 
     } 
    }; 
}); 

Как я могу назвать директиву для выполнения проверки на отправить событие?

ответ

0

Я не знаю, какую версию углового вы используете, но поскольку 1.3 валидаторы не взломаны в синтаксические анализаторы. См. $ Validators в https://docs.angularjs.org/api/ng/type/ngModel.NgModelController Также использование таких общих имен для директив обескураживается из-за возможных конфликтов имен. Используйте некоторый префикс, например myString

Смежные вопросы