2015-10-06 58 views
1

我在使用帶有角度js登錄表單的鍵盤上的'輸入按鈕'時遇到問題。我知道這個問題之前曾被問過,但我相信我的問題有點不同,因爲我幾乎試過了寫在stackoverflow問題上的所有內容。按Enter鍵不適用於AngularJS

所以,我只想用鍵盤上的回車鍵來敲擊輸入並提交表格。

這裏登陸HTML:

<!-- BEGIN LOGIN FORM --> 
<form ng-submit="loginCtrl.login()" class="login-form"> 
    <h3 class="form-title">Sign In</h3> 
    <div class="alert alert-danger display-hide"> 
     <button class="close" data-close="alert"></button> 
      <span> 
      Enter any username and password. </span> 
    </div> 
    <div class="form-group"> 
     <!--ie8, ie9 does not support html5 placeholder, so we just show field title for that--> 
     <label class="control-label visible-ie8 visible-ie9">Username</label> 
     <input class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Company/username" 
       ng-model="loginCtrl.username" name="username"/> 
    </div> 
    <div class="form-group"> 
     <label class="control-label visible-ie8 visible-ie9">Password</label> 
     <input class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" 
       ng-model="loginCtrl.password" name="password"/> 
    </div> 
    <div class="form-actions"> 
     <input type="submit" class="btn btn-success uppercase" value="Login"> 
    </div> 

    </form> 
<!-- END LOGIN FORM --> 

,這裏是我的登錄名:

self.login = function() { 

     var result = self.username.split("/"); 
     var account = result[0]; 
     var userId = result[1]; 

      UserService.login(userId, self.password,account).then(function(user) { 
      self.userAccount = user; 

      $state.go('home'); 

     }, function(err) { 
      alert("Authentication failure: Please check your credentials. ") 
     }); 

我得到的用戶名 「的companyName /用戶名」,所以它是這樣的: 亞馬遜/ bigboby

+0

你可以提供一個plunkr? –

+1

沒有什麼不尋常的可以阻止它的html。你確定問題不在你的提交功能中嗎?創建一個複製你的問題的演示,並提供更好的問題描述 – charlietfl

+1

和您的窗體應該有一個名稱爲角形式指令還 – charlietfl

回答

1

我很確定你的問題是由這個<button>標籤造成的:

<button class="close" data-close="alert"></button> 

答案在documentation發現:

您可以使用以下兩種方式之一,以指定當表單提交JavaScript方法應該叫:

ngSubmit指令的形式在第一按鈕或輸入字段類型的提交元件

ngClick指令(輸入[類型=提交])

請注意關於如何在第一個按鈕上查找ng-click處理程序的註釋。當您按ENTER提交表單時,Angular會查看錶單並看到該按鈕。它會在該按鈕上執行ng-click處理程序(如果有的話)。

如果包含按鈕上的type屬性,可以防止並讓它找到實際的提交按鈕:

<button type="button" class="close" data-close="alert"></button> 
+0

非常感謝,我想這很有道理,如果表單中有多個按鈕, 。所以只要輸入'type =「button」'就可以正常工作。 –