javascript - Javascript没有从输入字段中读取单个字符
问题描述
我在 Javascript 中遇到问题。在下面的代码中,有 2 个输入字段,id 分别为“v1”和“v2”。当我尝试仅使用单个字符记录输入字段 v1 的值时,控制台中没有显示任何内容。输入第二个字符后,控制台显示第一个字符。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="v1" /><br>
<input type="text" id="v2" />
<script>
document.getElementById("v1").onkeypress = function() {myFunction()};
function myFunction() {
console.log(document.getElementById("v1").value);
document.getElementById("v1").style.backgroundColor = "red";
}
</script>
</body>
</html>
输出:
解决方案
代替onkeypress
,使用onkeyup
。它无法使用的原因onkeypress
是因为它在按下键时会生成控制台。到那时,该值还没有进入输入字段,这意味着它会给出已经存在的值。onkeyup
当在输入字段中输入字符时,使用执行。
document.getElementById("v1").onkeyup = function() {
myFunction()
};
function myFunction() {
console.log(document.getElementById("v1").value);
document.getElementById("v1").style.backgroundColor = "red";
}
<input type="text" id="v1" /><br>
<input type="text" id="v2" />
推荐阅读
- amazon-web-services - 从 S3 存储桶读取火花的 AWS 收费?
- c - 如何在字符串中查找单词而不是子字符串
- google-bigquery - 如何在云数据融合中使用 BigQuery 视图作为源?
- google-data-studio - 如何在 Google Data Studio 中划分两个参数?
- android - 如何在 Android Studio 的 Git 本地更改中禁用 .so 文件差异
- reactjs - 如何在 react-redux 中呈现更新的状态?
- vue.js - 如何在 nuxtjs 的路由中添加@。例如:example.com/@username
- cmake - 向所有 CMake 目标添加额外的源文件?
- python - 我怎样才能既翻字典又使用计数器?
- javascript - discord.js 大写和小写嵌入消息不起作用