You need to enable JavaScript to run this app. 为何textarea手动修改后,点击表格单元格不再同步更新内容?
优惠活动
大模型
产品
解决方案
定价
更多

为何textarea手动修改后,点击表格单元格不再同步更新内容?

问题根因

实现异常的核心原因是对textarea元素错误使用.text()方法赋值:

  • .text()方法操作的是DOM层的元素子文本节点,不会同步修改表单元素对应的实际value属性
  • 初始状态下textarea未被用户交互修改时,DOM文本节点和内部存储的value值一致,首次点击单元格可以正常填充内容
  • 一旦用户手动修改过textarea内容,浏览器会将输入内容写入value属性,此时DOM层子文本节点不再和value值保持同步;后续再用.text()修改DOM文本节点,完全不会影响用户实际看到的表单内容,就会出现点击单元格无法更新textarea的问题
修复方案

将赋值逻辑替换为使用jQuery表单值专用的.val()方法,该方法直接读写表单元素的value属性,无论用户是否手动编辑过textarea,都能正常响应内容更新:

$(document).ready(function() {
  $('tbody').on("click", "td", function() {
    $("textarea").val($(this).text());
  });
});

补充说明:

  • 原代码中绑定事件时定义的形参a没有被实际使用,可以直接省略,不影响功能运行
  • 该写法兼容全版本jQuery,不会出现手动编辑后赋值失效的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 12:06:10