javascript - 从 "onkeypress"转换为 "addeventlistener("按键",()=>{})

标签 javascript addeventlistener

我在输入标签上的 html 中写入了以下 JS 行。我在类里面学习关注点分离,我们不应该将 JS 放入我们的 html 中。我一直在想办法转换这条线:

onkeypress="return (event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || event.charCode == 32;"

对于这样的事情:
document.querySelector("#login-first-name").addEventListener("keypress",function(event){
  return (event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || event.charCode == 32;
});
任何见解都会很棒。

最佳答案

您需要添加参数 event喜欢 addEventListener("keypress", (event)=>{如果你想使用 this然后使用 function喜欢 addEventListener("keypress", function(event) {经过一番研究发现,用document.querySelector("#login-first-name").addEventListener("keypress"需要分配event.returnValue而不是 return . For more information refer this.也更新了代码。
请在下面检查。

document.querySelector("#login-first-name").addEventListener("keypress", (event) => {
  event.returnValue = (event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || event.charCode == 32;
});

document.querySelector("#login-first-name").addEventListener("keyup", function() {
  this.value = this.value.charAt(0).toUpperCase() + this.value.slice(1);
});
<input id='login-first-name' />

关于javascript - 从 "onkeypress"转换为 "addeventlistener("按键",()=>{}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62715326/

相关文章:

javascript - 谁能弄清楚为什么我的 div 上的 addEventListener 不起作用?

javascript - 将模态置于最前面

javascript - 任何人都可以帮助我使用以下 JScript 吗?

javascript - 如何在数组中插入一些东西?

javascript - 事件监听器无法使用预定义函数作为参数

javascript - 如何仅在单击时将字母颜色更改为白色

javascript - 在更改 div 背景时结合 mouseenter、mouseleave 和 click 事件

javascript - JSP 中的自动完成 - 是否可以查询每次输入,而不是提前将所有列表放在脚本上?

Android registerListener 和电池生命周期

javascript - 在函数中返回 Javascript 对象