如何使用事件onkeypress ENTER(keyCode == 13)来避免刷新页面?

时间:2017-05-12 16:42:57

标签: javascript

我需要在按键输入后将表单输入发送到js函数

按下后,在回复https://stackoverflow.com/a/905233/6827096但在代码刷新页面下方输入

#.html
<script src="chat.js'"></script>
<input  onkeypress="return sendChatMessage(event)">

#chat.js
function sendChatMessage(e) {
    if (e.keyCode == 13) {
        console.log("e.keyCode == 13");   //never reachable
        return false;
    }
    return true;
}

如何避免使用事件onkeypress ENTER刷新页面(keyCode == 13)?

在页面加载的浏览器控制台中可以看到函数sendChatMessage

3 个答案:

答案 0 :(得分:1)

如果您的输入位于<form>元素内,则按 Enter 将尝试提交表单。尝试在preventDefault()中添加sendChatMessage()

function sendChatMessage(e) {
    if (e.keyCode == 13) {
        e.preventDefault();  // this should prevent default action
        console.log("e.keyCode == 13");   //never reachable
        return false;
    }
    return true;
}

答案 1 :(得分:1)

尝试将e.preventDefault();添加到您的函数sendChatMessage,它将阻止链接打开。您的代码将如下所示:

function sendChatMessage(e) {

    if (e.keyCode == 13) {
e.preventDefault();  // add  this line of code.
        console.log("e.keyCode == 13");   //never reachable
        return false;
    }
    return true;
}

答案 2 :(得分:1)

尝试同时使用e.which和e.keyCode:

function sendChatMessage(e) {
    if (e.which == 13 || e.keyCode == 13) {
        e.preventDefault();
        console.log("e.keyCode == 13"); 
        return false;
    }
    return true;
}