2015-06-02 50 views
0

MVC非常新,並試圖找出如何將處理程序附加到提交按鈕,以便用戶不必點擊提交按鈕。提交輸入按鈕cshtml中的按鍵

我有以下的JavaScript:

  //fix to add submit to the enter button 
     function keypressHandler(e) { 
      if (e.which == 13) { 
       e.preventDefault(); //stops default action: submitting form 
       $(this).blur(); 
       $('#btnLoginSubmit').focus().click();//give your submit an ID 
      } 
     } 

     $('#myForm').keypress(keypressHandler); 

,這裏是爲_Layout.cshtml頁面的標記:

<div ng-controller="LoginController"> 
<script type="text/ng-template" id="loginForm.html"> 
      <div class="modal-header"> 
       <h3>Please log in</h3> 
      </div> 
      <form ng-submit="submit()"> 
       <div class="modal-body"> 
        <label>User name</label> 
        <input type="text" ng-model="user.userId" /> 
        <label>Password</label> 
        <input type="password" ng-model="user.password" /> 
       </div> 
       <div class="modal-footer"> 
        <button class="btn btn-warning" ng-click="cancel()">Cancel</button> 
        <input type="submit" class="btn primary-btn" value="Submit" /> 
       </div> 
      </form> 
     </script> 

我有一個很難搞清楚如何將腳本附加到實際的提交按鈕。我添加了一個id,但JS正在尋找表單名稱(我知道它不是myForm),它似乎沒有在任何地方定義。覺得這應該很容易,但我錯過了一些東西。

+0

由 –

+0

我必須說,我有點困惑,爲什麼當輸入鍵在表單控件內部時還沒有工作 - 這實際上是您經歷過的嗎? –

+0

我並不完全確定發生了什麼,但它似乎正在擊中取消按鈕而不是提交按鈕。所以你輸入你的憑證,按回車鍵,然後關閉彈出窗口。然後我必須刷新頁面。不知道取消按鈕是否以某種方式獲得焦點。 – TrevorGoodchild

回答

2

你需要給formid

<form id="myform" ng-submit="submit()"> 

但此外,你只需要提交表單本身:

function keypressHandler(e) { 
    if (e.which == 13) { 
     e.preventDefault(); //stops default action 
     $('#myform').submit(); 
    } 
} 

,最後,你真的需要掛鉤它取決於文檔:

$(document).keypress(keypressHandler);