2011-05-09 29 views
7

即時通訊設法使我自己的聊天...所以我有一個輸入文本字段,提交按鈕,甚至不提交,它只是一個按鈕....所以當按下回車鍵,我需要的值的輸入字段出現在我的textarea(這是隻讀)...如何將Enter鍵用作事件處理程序(javascript)?

好看..長話短說,我只是想要一個基本的enter鍵事件處理程序,我知道它可以完美地與提交按鈕cus你不需要編程任何東西,它的默認值。但我的按鈕是type =「button」....所以當你按下輸入什麼都沒有發生......我怎麼通過按回車觸發我的按鈕?

+1

檢查此線程:http://stackoverflow.com/questions/155188/trigger-button-click-with-javascript-on-enter-key-in-text-box – keyboardP 2011-05-09 00:26:08

+0

在一個窗體中,按鈕元素是一個提交按鈕默認。如果您在表單中設置輸入並使用正常提交,那麼您應該可以在沒有腳本的情況下使用它。然後你可以在頁面加載時添加一個onsubmit監聽器來用XHR替換提交。現在你有一個聊天頁面,可以使用或不使用JS,並且你有一個很好的回退。 – RobG 2011-05-09 00:30:31

+0

什麼XHR,使它成爲一個提交按鈕的問題是,當按鈕被按下時,頁面必須刷新每次聊天消息發送,我得到它所有的工作與AJAX和一切,MySQL數據庫等,但我有點擊按鈕,我發送一條消息到聊天室,如何跛腳....我需要輸入事件處理程序 – 2011-05-09 00:43:21

回答

12

您可以使burron類型提交,或者您可以使用onkeyup事件處理程序並檢查鍵碼13(http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx有一個鍵碼列表)。你必須知道如何從事件中獲得鍵碼。

編輯:爲例

HTML:

<input onkeyup="inputKeyUp(event)" ...> 

普通的JavaScript:

function inputKeyUp(e) { 
    e.which = e.which || e.keyCode; 
    if(e.which == 13) { 
     // submit 
    } 
} 
+0

keycode 13可能是我在尋找的東西,但它對我來說並不熟悉,我沒有看到它或使用它,你能提供我的代碼片段 – 2011-05-09 00:44:24

+0

謝謝entonio,這很不錯,簡單的答案,簡短而不復雜 – 2011-05-17 15:35:05

2

下面是監聽回車鍵

工作代碼段
$(document).ready(function(){ 

    $(document).bind('keypress',pressed); 
}); 

function pressed(e) 
{ 
    if(e.keyCode === 13) 
    { 
     alert('enter pressed'); 
     //put button.click() here 
    } 
}