Javascript 按Enter键时发送消息

Javascript 按Enter键时发送消息,javascript,Javascript,这是我的密码: <input type=\"text\" id='MsgToSend" + ToClient + "t" + FromClient + "' onkeypress='ClientOnTyping();' /> 您需要在keydown事件的元素上附加一个事件侦听器 var btn = document.getElementById('MsgToSend'); btn.addEventListerner('keydown', function (e) { if(

这是我的密码:

<input type=\"text\" id='MsgToSend" + ToClient + "t" + FromClient + "' onkeypress='ClientOnTyping();' />

您需要在
keydown
事件的元素上附加一个事件侦听器

var btn = document.getElementById('MsgToSend');
btn.addEventListerner('keydown', function (e) {
    if(e.keyCode==13) {
     // i know i should do this but my problem is what is 'e' in my case how can i specify it ?
    }
});
在传统浏览器上,可以通过这种方式附加事件处理程序

var btn = document.getElementById('MsgToSend');
btn.onkeydown = function (e) {
    e = e || window.event;
    var keyCode = e.keyCode || e.which;
    if(keyCode==13) {
     // i know i should do this but my problem is what is 'e' in my case how can i specify it ?
    }
});

在handler函数的作用域中,
e
是每当DOM中触发事件时自动创建的
事件
对象。您只需将其传递给处理程序即可

例如:

<input ...onkeypress="ClientOnTyping(event);">

也可以考虑使用不显眼的代码而不是引人注目的代码。请参阅和Starx的答案。

问题是什么?请特别查看。它解释了如何使用内联事件处理程序访问事件对象。如果我写e.keyCode==13,我的语法是否正确,或者我应该以某种方式初始化“e”?bcs在教程中说:$(“#示例”).keypress(函数(e){if(e.KeyCode==13)});但在我的情况下,按键功能是预定义的。你刚刚回答了我的问题@FelixKling谢谢。我建议你阅读其他关于甚至处理的文章,它应该会让你对它的工作原理有一个很好的了解。+1,因为你省去了我键入完全相同的答案的时间。。。(特别是关于补偿IE对事件的解释)嗯。。。如果仅使用
addEventListerner
,则无需测试
window.event
。还是IE9没有将事件对象传递给处理程序?@FelixKling,我想是的。这样做不是更安全吗?实现W3C
addEventListener
方法的浏览器肯定也会将事件对象传递给处理程序,因此测试
window.event
是不必要的。如果使用传统的事件处理程序(即
element.onkeydown=function…
。它必须是
onkeypress='clientntyping(event);
,并且该函数必须定义为
function clientyping(e){…}
<input ...onkeypress="ClientOnTyping(event);">
function ClientOnTyping(e) {
    ...
}