2013-03-15 50 views
0

所以,我在這裏有一個小問題。使'輸入'鍵從輸入類型運行一個功能=「文本」

我有一個textfield(不是區域),我想要一個JS函數在我按下回車鍵時運行。這不是有一個單獨的「提交」按鈕。 現在我正在嘗試使用'onKeyPress'事件,但每次我輸入一個字母時都會運行該函數。所以如果我想寫'LIKE',它會發布'L'然後發佈'LI',然後'LIK '然後'喜歡'。每當我按下任何東西時,它都會發生反應,不僅在我進入時。

我沒有一種形式,只是一個簡單的輸入類型=「文本」:

<input type="text" id="' + post_id + '" onKeyPress="fbComment(\''+post_id+'\')"> Post a comment </input> 

如果一些你還記得我的最後一個問題,這將是我facebook_footer可變的部分(我嘗試FB API),並完成的東西看起來像這樣:

var facebook_footer = '<button onClick="fbLike(\''+post_id+'\')"> Like </button> <input type="text" id="' + post_id + '" onKeyPress="fbComment(\''+post_id+'\')"> Post a comment </input>'; 

做你們任何人都知道我能做些什麼來使這項工作?

回答

2

可以檢測輸入中的回車鍵:

$("#inputIDHERE").keypress(function(e) { 
    if(e.which == 13) { 
     alert('You pressed enter!'); 
    } 
}); 
+0

所以,我必須檢查哪個鍵被按下然後?當文本字段與「提交」類似時沒有功能? – Aleksander 2013-03-15 21:28:18

0

當然,你可以做到這一點 - 你只需要一些額外的邏輯在你的JavaScript。

退房Keyboard Events Tutorial

你只需要不期而遇的按鍵事件,看看輸入的內容密鑰。事件對象具有一個鍵碼或哪個屬性具有與按下的鍵相對應的值,並且鍵碼13是輸入/返回按鈕。

附加參考:Javascript Character Codes

2

繼承人一個簡單的功能 -

textElement.onkeydown=function(e){ 
    if(e.keyCode==13){ 
     alert('you press enter') 
    } 
} 
+0

那麼,我必須檢查哪個鍵被按下了?當文本字段與「提交」類似時沒有功能?就像我在Google上按Enter鍵,然後他們檢查哪個鍵被按下了? – Aleksander 2013-03-16 15:07:45

+0

有一個'onsubmit'事件,但是Google,facebook等大量使用keypress事件來確定ENTER鍵事件,並用它向服務器提交查詢! – spaceman12 2013-03-19 04:23:34

0

下面是我工作:

$("#inputIDHERE").bind('keypress', function(e) { 
    if(e.which == 13) { 
     alert('You pressed enter!'); 
    } 
}); 

我還添加了<形式> < /形式>在我輸入標記,儘管這可能不是必需的。

相關問題