如何使按键动作有效? 聊天,我想发送 - 还有什么 - 消息。在Form-tag(基于jsp的)中,我得到了这个:
" name="chat" target="content" onkeypress="Javascript: if (event.keyCode==13) SendMessage();" OnSubmit='SendMessage();return false;'>
脚本中的函数如下:
function SendMessage()
{
if (event.keyCode===13) {
alert('ENTER PRESSED'); // to make sure the function is called
document.chat.submit();
document.chat.msg.value = "";
document.chat.reset();
document.chat.msg.focus();
}
}
这在Chrome上运行良好但在Firefox上运行不正常,但它应该适用于每个浏览器。 另外,这个脚本导致firefox不清除文本字段(我认为,因为函数没有被正确调用)。 对此有何建议或帮助?我很丢失..
答案 0 :(得分:0)
这是一个解决方案。
function SendMessage(event){
var x = event.which || event.keyCode;
if (x === 13){
//your code
}
}
keyCode属性可能不适用于Firefox中的onkeypress事件。但是,哪个属性可以。
如果浏览器支持event.which,则使用event.which,否则使用event.keyCode
答案 1 :(得分:0)
保持html
" name="chat" target="content" onkeypress="Javascript: if (event.keyCode==13) SendMessage();" OnSubmit='SendMessage();return false;'>
并将功能更改为此
function SendMessage()
{
alert('ENTER PRESSED'); // to make sure the function is called
document.chat.submit();
document.chat.msg.value = "";
document.chat.reset();
document.chat.msg.focus();
}
答案 2 :(得分:0)
尝试onkeyup
:
var chat = document.chat;// chat form
var send = function() {
chat.msg.value = '';
chat.msg.focus();
};
var trySend = function(e) {
e = e || event;
var k = e.keyCode || e.which;
if (13 === k)
send();
};

<form name='chat' onsubmit='send();return false;'><!-- won't submit form -->
<textarea name='msg' onkeyup='trySend(event)'></textarea>
<button>Send</button>
</form>
&#13;
答案 3 :(得分:0)
$('form[name="chat"]').on('keyup', function(e){
if (e.which === 13) {
alert('ENTER PRESSED'); // to make sure the function is called
document.chat.submit();
document.chat.msg.value = "";
document.chat.reset();
document.chat.msg.focus();
}
});