按Enter键时发送消息

时间:2013-03-09 23:18:36

标签: javascript

这是我的代码:

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

动态生成FromClientToClient

JavaScript的:

function ClientOnTyping() {
  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 ?
  }

}

2 个答案:

答案 0 :(得分:2)

您需要在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 ?
    }
});

答案 1 :(得分:0)

在处理程序函数的范围内,e是在DOM中触发事件时自动创建的event对象。您只需将其传递给处理程序即可。

例如:

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

function ClientOnTyping(e) {
    ...
}

另外,请考虑使用不显眼的代码而不是突兀的代码。请参阅Difference between obtrusive and unobtrusive javascript和Starx的回答。