Простая проверка Angular не работает

#javascript #angularjs #validation #angularjs-validation

#javascript #angularjs #проверка #angularjs-проверка

Вопрос:

Вот некоторый модуль, который я создал. Я не могу понять, почему это не работает.
Вот JS:

   angular.module('demo', [
  ]).controller('MainCtrl', function($scope)
  {
    $scope.name = "Vlad";
    $scope.age = 11;

    $scope.sendTest = function() 
    {
      console.log($scope.name.$valid);
      console.log($scope.age.$valid);
    }
  });
  

Вот html:

 <body ng-controller="MainCtrl">
    <form name="form" novalidate>
            <p>
                <label>Number: </label>
                <input type="text" min="0" max="10" ng-model="age" required />
            </p>
            <p>
                <label>Name: </label>
               <input type="text" ng-model="name" required />
            </p>
            <button ng-click="sendTest(test)">Submit</button>
        </form>
  </body>
  

Проблема в том, что я получаю undefined в консоли (вместо true , false ).

Ответ №1:

Две вещи.

Вам необходимо получить доступ к полям формы через объект form

 console.log($scope.form.name.$valid);
console.log($scope.form.age.$valid);
  

И чтобы иметь возможность это сделать, вам нужно установить name атрибут на входных данных

 <input type="number" name="age" min="0" max="10" ng-model="age" required />
<input type="text" name="name" ng-model="name" required />
  

Ну, три вещи. Вам нужно input type="number" для min и max для работы. Смотрите документы

Комментарии:

1. Что, если у меня есть несколько форм? Я попытаюсь обработать это на плунжере.

2. Дайте им разные имена