2015-03-31 1 views
6

Я создаю форму входа в систему с угловым материалом и стараюсь использовать ее немного иначе, чем примеры на их странице. Я просто хочу, чтобы требуемые поля только кричали на меня, если пользователь пытается подать без заполнения поля. Может быть, отключить кнопку тоже? Независимо от того, если пользователь заполняет только одно поле и нажимает enter, я бы хотел, чтобы он показывал, что «это требуется». Сейчас это просто показывает, что он все время, пока вы не заполните егоУгловая, только форма материала поле обязательное для заполнения после отправки запроса

Вот что у меня есть: https://jsfiddle.net/5b1tsm2a/6/

Я пытаюсь код из их примера страницы, как так -

<form ng-submit="authenticate()" name="loginForm"> 
     <md-input-container> 
      <label>Username</label> 
      <input name="name" reauired ng-model="loginInfo.username"> 
      <div ng-messages="projectForm.description.$error"> 
       <div ng-message="required">This is required.</div> 
      </div> 
     </md-input-container> 

     <md-input-container> 
      <label>Password</label> 
      <input name="password" reauired type="password" ng-model="loginInfo.password"> 
      <div ng-messages="projectForm.description.$error"> 
       <div ng-message="required">This is required.</div> 
      </div> 
     </md-input-container> 

     <md-button ng-click="authenticate()" class="md-primary btn btn-primary">Login</md-button> 
    </form> 

Я используя логику с ng-сообщениями ниже нее. Мне хотелось бы только показать, пытались ли они подать, не заполняя ничего. Благодаря!

+0

Предложенное документация [форм Угловое] (https://docs.angularjs.org/api/ng/directive/form). Также есть опечатки «reauired». – ryanyuyu

ответ

5

Обновить код, как показано ниже:

<form ng-submit="authenticate()" name="loginForm"> 
     <md-input-container> 
      <label>Username</label> 
      <input name="username" ng-model="loginInfo.username" required/> 
      <div ng-messages="loginForm.username.$error" ng-if='loginForm.username.$dirty'> 
       <div ng-message="required">This is required.</div> 
      </div> 
     </md-input-container> 

     <md-input-container> 
      <label>Password</label> 
      <input name="password" type="password" ng-model="loginInfo.password" required/> 
      <div ng-messages="loginForm.password.$error" ng-if='loginForm.password.$dirty'> 
       <div ng-message="required">This is required.</div> 
      </div> 
     </md-input-container> 
     <md-button type="submit" class="md-primary btn btn-primary">Login</md-button> 
</form> 
+1

Спасибо! есть ли способ показать это, оба требуются, если вы ничего не заполняете - кажется, просто говорят, что верхний (имя) требуется, только если вы оставите оба пустым. –

+0

Когда вы добавляете «обязательный» атрибут в несколько полей ввода, тогда требуемые сообщения будут отображаться последовательно по мере появления полей. Это поведение по умолчанию. Да, ты можешь изменить. Используйте yr пользовательскую проверку с помощью углового. проверьте это: http://www.ng-newsletter.com/posts/validations.html – nitin

+2

Это работало? Я бы подумал, что вам нужно включить атрибут novalidate в форму и использовать loginForm. $, А не проверять, загрязнено ли каждое поле? – daddywoodland

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