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

如何实现输入框复用,实时同步输入内容至textarea组件?

实现输入框实时更新textarea内容的方案

要实现输入框输入不同名称时,textarea文本实时变化且可重复使用,需要解决两个核心问题:

  • 去掉按钮触发,改为输入框内容变化时自动更新
  • 保留textarea的原始模板,避免替换后丢失占位符无法重复替换

修改后的完整代码

HTML部分

<div class="input">
  <input class="name" type="text" id="name" maxlength="100" value="" placeholder="Enter name">
</div>

<textarea class="box" id="text1">Hello name</textarea>
<button class="btn1" style="vertical-align:top;">Copy</button>

<textarea class="box" id="text2">Welcome name</textarea>
<button class="btn2" style="vertical-align:top;">Copy</button>

JavaScript部分

// 保存每个textarea的原始模板,避免替换后丢失占位符
const textTemplates = {
  text1: document.getElementById('text1').value,
  text2: document.getElementById('text2').value
};

// 获取输入框元素
const nameInput = document.getElementById('name');

// 监听输入框的内容变化事件
nameInput.addEventListener('input', function() {
  const currentName = this.value.trim();
  // 遍历所有需要更新的textarea
  for (let i = 1; i < 3; i++) {
    const textarea = document.getElementById(`text${i}`);
    // 基于原始模板替换占位符,空输入时还原默认占位符
    const updatedText = textTemplates[`text${i}`].replaceAll(/name/gi, currentName || 'name');
    textarea.value = updatedText;
  }
});

关键说明

  • 保存原始模板:页面加载时就把每个textarea的初始内容存在textTemplates里,每次更新都基于这个模板替换,保证不管输入多少次新名称,都能正确识别占位符。
  • 实时监听输入:用input事件替代按钮点击,输入框内容一变化就触发更新,实现实时同步效果。
  • 处理空输入:如果输入框为空,自动把占位符还原成"name",避免显示空白内容。

内容的提问来源于stack exchange,提问作者gnp103902348

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:22