我想在不使用jQuery的情况下按下enter时捕获onKeyUp.
我目前的代码是:
$('#chatboxtextarea').on('keyup', function (e) {
var msg = document.getElementById('chatboxtextarea').value;
if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') != "" && e.keyCode == 13) {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';
.....code to send.....
} else if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') == '') {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';
}
});
Run Code Online (Sandbox Code Playgroud)
如何在常规JavaScript中完成?
简单地:
document.getElementById('chatboxtextarea').onkeyup = function (e) {
e = e || window.event;
var textarea = this;
var msg = textarea.value;
if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') != "" && e.keyCode == 13) {
textarea.value = '';
.....code to send.....
} else if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') == '') {
textarea.value = '';
}
};
Run Code Online (Sandbox Code Playgroud)
编辑:
或者,您可以调用类似以下内容来添加事件;传递元素对象、事件类型(不带“on”)、要调用的函数以及是否使用捕获,只是为了利用不同的浏览器方法:
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
}
else if (elm.attachEvent) {
elm.attachEvent('on' + evType, fn);
}
else {
elm['on' + evType] = fn;
}
};
Run Code Online (Sandbox Code Playgroud)
IE:
addEvent(document.getElementById('chatboxtextarea'), 'keyup',
function(e) {
e = e || window.event;
...
}, false);
Run Code Online (Sandbox Code Playgroud)