проверка углов - ng-dirty и требуется не отображается

0

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

мой html:

<form name="someform1" controller="validateCtrl" novalidate>
  <input ng-model="namefld" type="text" required/>
  <span ng-show="someform1.namefld.$dirty">pls enter name field</span>
  <span ng-show="someform1.namefld.$error.required">Username is required.</span>
</form>

я установил контроллер следующим образом:

var myapp = angular.module("myApp",[]);
app.controller('validateCtrl', function($scope) {
    $scope.namefld = 'John Doe';
    $scope.email = '[email protected]';
});

"myApp" определен в <html> так что это не проблема. Я что-то упускаю и новичок в угловой, PLS руководство, что я делаю неправильно.

  • 1
    Вам необходимо добавить атрибут name к вашему input тегу. Например, <input ng-model="namefld" type="text" name="namefld" required /> .
Теги:

3 ответа

1

Вам также нужно добавить name на ввод. Как вы уже установили, $dirty будет работать только на самой форме не на каждом отдельном входе, вам нужно добавить имя для входов для этого

0

Работа по проверке угловой формы основана на названии формы и входов формы. В вашем случае вы указали имя формы, но не элемент ввода. Добавьте name="namefld" во входной элемент, и он будет работать.

<form name="someform1" novalidate>
  <input ng-model="namefld" name="namefld" type="text" required/>
  <span ng-show="someform1.namefld.$dirty">pls enter name field</span>
  <span ng-show="someform1.namefld.$error.required">Username is required.</span>
</form>

См. Рабочий JSbin для того же, что я создал

0

Рабочая демонстрация

Вам не хватает name='namefld'

<input ng-model="namefld" name='namefld' type="text" required/>

Ещё вопросы

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