如何在每个浏览器上输入Keypress?

时间:2015-04-02 05:44:21

标签: java javascript jquery html jsp

如何使按键动作有效? 聊天,我想发送 - 还有什么 - 消息。在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不清除文本字段(我认为,因为函数没有被正确调用)。 对此有何建议或帮助?我很丢失..

4 个答案:

答案 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;
&#13;
&#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();
        }
});