我需要在按键输入后将表单输入发送到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
。
答案 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;
}