Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript v2.login不是一个函数_Javascript_Angularjs_Forms - Fatal编程技术网

Javascript v2.login不是一个函数

Javascript v2.login不是一个函数,javascript,angularjs,forms,Javascript,Angularjs,Forms,我正在尝试验证以下表单: // JS $scope.fields = [ { text: 'Username', type: 'text', value: ''}, { text: 'Phone', type: 'text', value: ''}, { text: 'Password', type: 'password', value: ''}, { text: 'Confirm password', type: 'password', value: ''} ] $scope

我正在尝试验证以下表单:

// JS
$scope.fields = [
  { text: 'Username', type: 'text', value: ''},
  { text: 'Phone', type: 'text', value: ''},
  { text: 'Password', type: 'password', value: ''},
  { text: 'Confirm password', type: 'password', value: ''}
]

$scope.login = function () {
  console.log('Logged in')
}

// HTML
<div class="user">
  <h2 class="header">Log in</h2>
  <form name="login">
    <div ng-repeat="field in fields">
      <input class="form-control" type="{{ field.type }}" placeholder="{{ field.text }}" ng-model="field.value" name="{{ field.text }}" required />
      <div ng-show="(login[field.text].$touched || login.$submitted) && (login[field.text].$error.required)">
        <span class="help-block">Please enter {{field.text}}</span>
      </div>
    </div>
    <a class="btn primary" href="javascript:;" ng-click="login()">Log in</a>
    <a href="#/signup">Sign up</a>
    <a href="#/forgot-password">Forgot password</a>
    <a id="skip" href="#">Skip</a>
  </form>
</div>

现在什么也没发生。当我单击“提交”时,甚至没有出现登录的
消息。

尝试将表单名称更改为其他名称。ng click函数和名称不应相同。

您必须在html页面上定义ng控制器。

我更改了名称(将其转换为
ngSubmit
)。现在什么也没发生。请看我的编辑。你能告诉我们你的控制器是如何在HTML中定义和调用的吗?你用路由器吗?这似乎是一个问题,可能是由于不正确使用
controllerAs
语法造成的。
// JS
$scope.submit = function () {
  console.log('Logged in')
}

// HTML
<div class="user">
  <h2 class="header">Log in</h2>
  <form name="login" ng-submit="submit()">
    <div ng-repeat="field in fields">
      <input class="form-control" type="{{ field.type }}" placeholder="{{ field.text }}" ng-model="field.value" name="{{ field.text }}" required />
      <div ng-show="(login[field.text].$touched || login.$submitted) && (login[field.text].$error.required)">
        <span class="help-block">Please enter {{field.text}}</span>
      </div>
    </div>
    <input class="btn primary" type="submit" value="Log in" />
    <a href="#/signup">Sign up</a>
    <a href="#/forgot-password">Forgot password</a>
    <a id="skip" href="#">Skip</a>
  </form>
</div>