Подтвердить что ты не робот

Проверьте, пусто ли поле ввода

Как проверить, пуст ли данный элемент управления ввода? Я знаю, что в поле есть свойство $pristine, которое сообщает, что если заданное поле пуст изначально, но что, если кто-то заполнит поле и снова запишет все содержимое?

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

Любая идея будет оценена!

4b9b3361

Ответ 1

Довольно просто:

<input ng-model="somefield">
<span ng-show="!somefield.length">Please enter something!</span>
<span ng-show="somefield.length">Good boy!</span>

Вы также можете использовать ng-hide="somefield.length" вместо ng-show="!somefield.length", если это более естественно для вас.


Лучшей альтернативой может быть использование возможностей форм Angular:

<form name="myform">
  <input name="myfield" ng-model="somefield" ng-minlength="5" required>
  <span ng-show="myform.myfield.$error.required">Please enter something!</span>
  <span ng-show="!myform.myfield.$error.required">Good boy!</span>
</form> 

Обновлен Plnkr здесь.

Ответ 2

Даже вам не нужно измерять длину строки. A! оператор может решить все для вас. Помните всегда: ! (пустая строка) = true ! (некоторая строка) = false

Итак, вы можете написать:

<input ng-model="somefield">
<span ng-show="!somefield">Sorry, the field is empty!</span>
<span ng-hide="!somefield">Thanks. Successfully validated!</span>

Ответ 3

Другой подход заключается в использовании регулярного выражения, как показано ниже, вы можете использовать пустой шаблон регулярного выражения и достичь того же, используя ng-pattern

HTML:

 <body ng-app="app" ng-controller="formController">
 <form name="myform">
 <input name="myfield" ng-model="somefield" ng-minlength="5" ng-pattern="mypattern" required>
 <span ng-show="myform.myfield.$error.pattern">Please enter!</span>
 <span ng-show="!myform.myfield.$error.pattern">great!</span>
</form>

Контроллер: @formController:

         var App = angular.module('app', []);
         App.controller('formController', function ($scope) {              
             $scope.mypattern = /^\s*$/g;
         });

Ответ 4

Для автоматической проверки флажка, если поле ввода не пусто.

 <md-content>
            <md-checkbox ng-checked="myField.length"> Other </md-checkbox>
            <input  ng-model="myField" placeholder="Please Specify" type="text">
 </md-content>

Ответ 5

Приведенный выше ответ не работал с Angular 6. Так вот, как я решил это. Допустим, так я определил свое поле ввода -

<input type="number" id="myTextBox" name="myTextBox"
 [(ngModel)]="response.myTextBox"
            #myTextBox="ngModel">