2011-01-24 43 views
1

我不想提交表單$ .ajax({}),當輸入鍵被擊中,但點擊提交按鈕。嘗試它與

$('#SubmitButton').click(function(event){ 

if(event.keyCode==13) { 
    //do something 
} 

}); 

我如何得到上述完成。

感謝 讓

+0

已經回答了:http://stackoverflow.com/questions/895171/prevent-users-from-submitting-form-b​​y-hitting-enter – mdrg 2011-01-24 15:36:18

回答

3

那麼,在點擊事件處理程序中,您沒有key-charCode,event.which,所以這根本沒什麼意義。您需要將keypress事件綁定到一個或多個輸入文本控件,用戶可以在其中鍵入(並因此觸發返回)。

$('input:text').bind('keypress', function(e) { 
    if(e.which === 13) 
     return false; 
}); 

從事件處理程序返回false使兩件事情:

  • .preventDefault()被調用的事件對象
  • .stopPropagation(上)被稱爲事件對象上

應該阻止return冒泡到您的<form>節點,從而阻止提交。所以,在這裏打電話給e.stopPropagation()就夠了。

1

我會嘗試做同樣的事情,但與.submit()結合它的形式。然後你可以返回false,或者你需要做的任何事情。

編輯:我要離開這裏,因爲它很有用。但我很快意識到,不是因爲這個問題,因爲我認爲你不能用這種方法跟蹤按鍵。我只是覺得這一點很醒目,並且在一段時間內沒有真正觸及過JavaScript。對不起,有任何困惑!