2015-12-02 4 views
0

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

<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

Что необходимо для проверки? Проходить? Имя? Эл. адрес? Возможно, вам нужен шаблон во входе. – ryanyuyu

+0

Вы можете подтвердить достоверность события lostfocus последнего учебника, если вы не хотите использовать кнопку – DevelopmentIsMyPassion

+0

, ваш вопрос не имеет смысла. в некоторых из удаленных комментариев вы предположили, что пытаетесь отправить форму без кнопки отправки, но это не то, о чем вы просили в органе вопросов. что касается валидации, у вас уже есть валидация для «требуемых» на этих входах, но вы не указали, что именно вы ожидаете. – Claies

ответ

0

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

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

Если вам нужно создать свой собственный валидатор, добавьте его в ngModelController.$validators или $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

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