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

修改文本框为文本域时出现Uncaught TypeError错误求助

表单输入框转文本域报错解决办法

为啥报错?

你把原input输入框的所有属性一股脑复制给textarea了,但textarea的type属性是只读的——只能读取不能修改,可input自带type="text"这个属性,赋值的时候就触发报错了。

怎么改?

  • 复制属性时跳过type,textarea根本不需要这个属性
  • 注意:input的内容存在value属性里,textarea的内容是放在标签内部的,得把原input的内容同步过去

修改后的代码:

const [node] = $('input[name="train_description"]');
const attrs = {};
$.each(node.attributes, (index, attribute) => {
  // 排除type属性
  if (attribute.name !== 'type') {
    attrs[attribute.name] = attribute.value;
  }
});
// 创建textarea,复制属性+同步原输入框内容
const textarea = $('<textarea>').prop(attrs).val(node.value);
// 替换原输入框
$(node).replaceWith(textarea);

补充提醒

原代码里的$(this)大概率指向不对,改成$(node)更稳妥,毕竟你拿到的原输入框节点是node。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:34:52