2014-01-20 50 views
5

我试图在angularjs中制作一个非常简单的登录表单,但似乎ng-submit()和ng-click指令都不是正在工作。ng-submit或ng-click无法在表单中提交按钮

我在这里创建了一个非常基本的plunker示例:http://plnkr.co/edit/BrLIxSZggZofCBoZpjT4?p=preview 其中/ ng-click或ng-submit都应该打开一个带有'a'字母的简单警报窗口。但是,当我点击登录按钮时没有任何反应。更有趣的是,如果我将ng-app更改为ng-app =“test”,则表单将被提交,但警报也不会被调用。

我在做什么错?

基本例如:

<head> 
    <script data-require="[email protected]" data-semver="1.2.9" src="http://code.angularjs.org/1.2.9/angular.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
</head> 

<body ng-app> 
    <!-- Login --> 
    <form data-title="Sign in" data-value="login" class="tab-pane" name="login" 
    ng-submit="alert('a')" ng-controller="Ctrl"> 

    <input type="text" name="username" value="" placeholder="Username" ng-model="model.username" ng-minlength="3" required autocapitalize="false" /> 
    <input type="password" name="password" value="" placeholder="Password" ng-model="model.password" required autocapitalize="false" autocorrect="false" /> 
    <input type="submit" ng-click="alert('a')" name="login" value="Sign in" /> 

    </form> 
    <!--/Login --> 
</body> 

</html> 

回答

8

ng-submit指令调用这应该是在控制器的功能。 的ng-submit指令将被触发提供的表单字段有效

表/ HTML

<form data-title="Sign in" data-value="login" class="tab-pane" name="login" 
    ng-submit="submit()" ng-controller="Ctrl"> 
    <input type="text" name="username" value="" placeholder="Username" ng-model="model.username" ng-minlength="3" required autocapitalize="false" /> 
    <input type="password" name="password" value="" placeholder="Password" ng-model="model.password" required autocapitalize="false" autocorrect="false" /> 
    <input type="submit" name="login" value="Sign in" /> 
</form> 

控制器

function Ctrl($scope) { 
    $scope.model = {}; 
    $scope.submit = function(){ 
     alert('a'); 
    } 
} 

Plunkr