You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过JavaScript修改text input内容的技术求助

问题排查与解决

你的核心问题是脚本执行时机不对,导致无法正确获取并修改input元素的值。

问题根源

你把<script src="script.js"></script>放在了<head>标签里,此时浏览器还未渲染<body>中的DOM元素,执行document.getElementById("contraseñaGenerada")会返回null,后续设置value的代码自然无法生效。

验证方法

可以在代码里添加日志确认这一点:

let contraseña = document.getElementById("contraseñaGenerada");
console.log(contraseña); // 控制台会输出null

解决方案(任选其一即可)

  • 方案1:调整脚本位置
    把script标签移到<body>的最后,</body>标签之前,确保DOM完全加载后再执行脚本:
<!-- 其他body内容 -->
    <script src="script.js"></script>
</body>
  • 方案2:监听DOM加载完成事件
    在script.js中把代码包裹在DOMContentLoaded事件监听里:
document.addEventListener('DOMContentLoaded', function() {
    let contraseña = document.getElementById("contraseñaGenerada");
    contraseña.value = "123";
});
  • 方案3:给script标签添加defer属性
    修改head中的script标签,添加defer属性让脚本等待DOM加载完成后执行:
<script src="script.js" defer></script>

补充说明:对于<input type="text">这类表单元素,修改内容必须使用.value,你最开始的contraseña.value = "123"写法是正确的,innerText确实不适用于表单输入框,无需调整这部分代码。

内容的提问来源于stack exchange,提问作者Valentín Sanabria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:39:25