2014-01-20 79 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