2012-08-23 59 views
4

我正在製作一個聊天Web應用程序,發送消息,有一個input type="text"和一個input type="button",使用JavaScript中的函數,我設法通過將onclick="sendMessage()"作爲屬性爲input button,但我需要點擊它,但我希望它像任何聊天信使或應用程序一樣工作,客戶端寫下東西並按ENTER鍵,這可以工作,如果我使用<form onsubmit="sendMessage()">input type="submit"但頁面將刷新,我該怎麼做?如何在按回車後調用onclick函數

回答

4
<form onsubmit="sendMessage();return false"> 

這可以防止發送請求到服務器的默認操作。

2

您必須勾選文本框的onkeypress/up/down事件。 這應該讓你開始: Enter key press event in JavaScript

+0

還有,使用雪球的答案取消事件後,處理它,添加「返回false」。 –

2

使用的onkeydown()(或按鍵或使用keyUp,根據語義),而不是在點擊 - 這將讓你與event.keyCode一個事件你想要的 - 13 - 你可以很容易地提交使用AJAX請求(即XMLHttpRequest的)

簡單代碼: - 原始的JavaScript,不需要JQuery的:

<html> 
<script> 
function keyPress(e) 
{ 
if (!e) e = window.event; // needed for cross browser compatibility 
alert(e.keyCode); // You want 13 here , so 
// if (e.keyCode == 13) 
// etc.. 

// return true; or false, if you want to cancel event 

} 
</script> 
<body> 
<input type="text" onkeydown="keyPress()" size="20"/>xx 

</body> 
</html> 
+0

謝謝;)我說「聊天網絡應用程序」後,你有什麼想法:P –

1

這,如果你想也魔鬼從發佈到服務器輸入按鈕並執行Js腳本。

<input type="text" id="txtSearch" onkeydown="if (event.keyCode == 13) 
{document.getElementById('btnSearch').click(); return false;}"/> 
<input type="button" id="btnSearch" value="Search" onclick="doSomething();"/> 
相關問題