2014-04-01 119 views
0

我在我的頁面上有一個輸入字段(type = text)。我使用的引導和樣式現場我用未來的html代碼:如何防止回車鍵提交表格

<form fole="form"> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="add-bookmark" value placeholder="Enter URL"> 
    </div> 
</form> 

在流星應用程序,我有事件處理程序:

Template.new_bookmark.events({ 

    // add new bookmark 
    'keyup #add-bookmark' : function(e,t) {  
     console.log(e.which); 
     if(e.which === 13) 
     { 

當我按下輸入字段中的任何按鈕,我拿到鑰匙代碼在控制檯(如我所願)。但如果我按Enter鍵,則控制檯日誌沒有任何內容,我的頁面被重新加載。

看起來像我的問題的原因是在窗體標籤。如果我刪除它一切正常。我需要做什麼 ?刪除表單標籤或防止頁面在我按Enter鍵時重新加載?如果答案是第二個,我該怎麼做?

+3

check e.preventDefault();這將是有用的。 –

+0

如果您不想要表單的行爲,請不要使用表單。 – RobG

+1

如果你允許我問,爲什麼你使用表單,如果你不想提交? – MJoraid

回答

1

頁面未被「重新加載」它正在被提交,這是當您關注表單(選擇表單中的輸入字段)並按回車時的默認行爲。如何防止這種情況,好了,將它添加到您的形式decliration:

<form name="myForm" onsubmit="return false;"> 

或者,如果你想在提交之前驗證輸入字段,那麼你可以使用一個單獨的函數來完成驗證你:

<form name="myForm" onsubmit="return validate();"> 

function validate() 
{ 
    //pur you validation code here 
    return true; 
} 

至於擊鍵記錄,實際上你會得到在日誌中輸入,但事情是,當你打輸入您brwoser會做的第一個動作是提交表單,因此將開始發送新的http reqeust並開始從服務器傳輸信息。當發生這種情況時,你的瀏覽器插件(Firebug,控制檯等)將暫停並等待,直到新頁面加載完畢。 我不確定這是多麼準確,但這是我的理解。

+0

我的代碼格式化過了,並且隱藏了該行。我現在只是修復它,它是可見的:) – MJoraid