Javascript 为什么在函数中记录textarea值时它总是空的?

Javascript 为什么在函数中记录textarea值时它总是空的?,javascript,html,dom,textarea,Javascript,Html,Dom,Textarea,在文档中呈现textarea值后,我尝试使用JavaScript获取该值,我使用: let input = document.getElementById("input").value; let btn = document.getElementById("btn"); btn.addEventListener("click", () => { console.log(input); }; 但它会在控制台中不断显示空字符串

在文档中呈现textarea值后,我尝试使用JavaScript获取该值,我使用:

let input = document.getElementById("input").value;
let btn = document.getElementById("btn");

btn.addEventListener("click", () => {
  console.log(input);
};

但它会在控制台中不断显示空字符串。

您需要使用preventDefault方法来解决按钮事件的此问题,就像某些控件默认行为阻止事件逻辑的执行一样。请参阅下面的解决方案。希望它能起作用

let input = document.getElementById("input").value;
let btn = document.getElementById("btn");

btn.addEventListener("click", (event) => {
  event.preventDefault();
  console.log(input);
})

下次也请添加您的HTML

也就是说,在代码中,当页面加载时,输入值只读取一次。如果要读取并显示更新的输入值,则必须在每次按下按钮时读取该值。下面是一个简单的例子:

让btn=document.getElementById(“btn”);
btn.addEventListener(“单击”,()=>{
让输入=document.getElementById(“输入”).value;
控制台日志(输入);
});


启动时只需按我一次,即可读取
.value
<代码>输入
之后不会更新。您需要将这一行放入单击处理程序…这仍然会在页面加载时的输入中显示默认值,而不是单击按钮时的值<代码>预防默认值
不会完全改变任何东西。我错过了那一行。谢谢你的更新。