AngularJS表单输入未定义

时间:2017-12-20 14:22:51

标签: angularjs forms

我在我的应用中使用了很多表单,但由于某种原因,其中一个(实际上最简单的一个)无法正常工作。当我提交它时,我的console.log给出的输入值是“未定义的”。

我很确定这是一个非常简单的错误,但我看不到它。

我尝试在输入中使用“form ='forgottenForm'”,我也尝试过ng-model但是因为我没有显示“email”的值,所以它没用,我只是想提交它然后执行一些数据库操作。

HTML

<form name="forgottenForm" id='forgottenForm' novalidate="" ng-controller="forgottenCtrl">
    <label class="forgotten-item item item-input">
        <input type="text" name="forgottenEmail" required>
    </label>
    <button type="submit" class="button" ng-click="submitForgotten(forgottenEmail)">Valider</button>
</form>

的JavaScript

angular.module('ionicApp').controller("forgottenCtrl", function($scope, $http, $ionicPopup, $cookies, $rootScope, $window, $q){
    $scope.submitForgotten = function(forgottenEmail){
        console.log(forgottenEmail);
    }
})

2 个答案:

答案 0 :(得分:1)

这将有效,

  1. 您必须在$scope中声明一个变量,例如$scope.email=''
  2. 然后你需要像<input type="text" ng-model='email' name="forgottenEmail" required>
  3. 这样设置它

    实际上你不需要传递变量提交功能

    angular.module('ionicApp').controller("forgottenCtrl", function($scope, $http, $ionicPopup, $cookies, $rootScope, $window, $q) {
      $scope.email = '';
      $scope.submitForgotten = function() {
        console.log($scope.email);
      }
    })
    <form name="forgottenForm" id='forgottenForm' novalidate="" ng-controller="forgottenCtrl">
      <label class="forgotten-item item item-input">
         <input type="text" ng-model='email' name="forgottenEmail" required>
      </label>
      <button type="submit" class="button" ng-click="submitForgotten()">Valider</button>
    </form>

答案 1 :(得分:0)

答案是改为ng-model="forgottenEmail"

也可以在表单上使用ng-submit而不是按钮上的ng-click

感谢Aleksey Solovey的答案! :)