Проверка формы без кнопки отправки в AngularJS

0

Я имею простую форму, которую мне нужно проверить. Как я могу проверить его без кнопки (submit)?

<form name="myForm" novalidate>
    <fieldset>
        <legend>Info</legend>
        <div>
            <label for="name">Name:</label>
            <input type="text" name="name" id="name" ng-model="myName" required/>
        </div>
       <div>
           <label for="pass">Password:</label>
           <input type="password" name="pass" id="pass" ng-model="myPass" required/>
       </div>
       <div>
           <label for="email">Email:</label>
           <input type="email" name="email" id="email" ng-model="myMail" required/>
       </div>
        <div>
            <label for="birth">Date of birth:</label>
            <input type="date" id="birth" name="birth" ng-model="date"/>
        </div>

    </fieldset>
</form>
  • 0
    что нужно для проверки? Проходят? Имя? Электронное письмо? Может быть, вам нужен шаблон на входе.
  • 0
    Вы можете подтвердить событие потерянного фокуса в последнем учебнике, если не хотите использовать кнопку
Показать ещё 3 комментария
Теги:

1 ответ

0

По умолчанию проверка угловой формы будет срабатывать автоматически всякий раз, когда данные изменяются (независимо от модели или на основе прямого ввода пользователем), она не привязана к форме submit. Вы можете изменить, какие события запускают это, используя ng-model-options, как в

<input ng-model-options="{
    updateOn: 'default blur', 
    debounce: { default: 500, blur: 0 } 
}" ...>

Если вам нужно создать свой собственный валидатор, добавьте его в ngModelController.$validators $asyncValidators или $asyncValidators, например:

<input type="text" name="name" id="name" ng-model="myName" validatename required/>
app.directive('validatename', function() {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
      ctrl.$validators.validatename = function(modelValue, viewValue) {
        if (ctrl.$isEmpty(modelValue)) {
          return true;
        }

        if (viewValue === "Zuul") {
          return true; 
        }

        return false; // There is no Dana only Zuul
      };
    }
  };
});

Я считаю, что вы также можете инициировать валидацию программным путем, вызывая $validate() но это редко необходимо.

См. Https://docs.angularjs.org/guide/forms

Ещё вопросы

Сообщество Overcoder
Наверх
Меню