Javascript 为什么 onClick 被回车键调用

标签 javascript onclick key enter

我有一个带有 onClick 事件的按钮和一个带有 onKeyDown 事件的文本字段。

Button: onclick="myFunc(3)"
Textfield: onKeyDown="if(event.keyCode==13) myFunc(3);"

如果我按下回车键,按钮就会被调用,但我不知道为什么。

最佳答案

当您在文本字段中按 Enter 时,您会触发表单提交,并且浏览器会模拟单击表单的第一个提交按钮。

您可以通过阻止按键(而不是按键)事件的默认操作来避免这种情况。

var s = document.querySelector('[type=submit]');
var t = document.querySelector('[type=text]');
var f = document.querySelector('form');

t.addEventListener('keydown', function(event) {
  if (event.keyCode == 13) {
    alert("enter pressed")
  }
});

t.addEventListener('keypress', function(event) {
  if (event.keyCode == 13) {
    event.preventDefault();
  }
});
<form action="/">
  <input type="text">
  <input type="submit">
</form>

关于Javascript 为什么 onClick 被回车键调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166871/

相关文章:

javascript - 如果多个指令在 angularjs 中的单个元素上会发生什么

安卓 ListView

mysql - SQL 错误 1452 : Cannot add or update child row

javascript - 在 ReactJS 中将 ValueLink 与自定义 onChange 处理程序结合使用

javascript - 如何使用 officejs api 在 MS Word 中重新加载页眉和页脚

javascript - 我希望我的输入写在左边

php - onclick php 之后更新表

java - 在 onClick() 中实例化 ui 元素与在 Fragment 中实例化 onCreateView

python - 如何将字典的键转换为单列的 pandas 数据框?

Java KeyListener - 如何检测是否按下了任何键?