textarea 没有 value 属性,其默认值需写在开始与结束标签之间;换行空格会被保留,特殊字符须转义。

textarea 的 value 属性不生效?那是你用错了标签
HTML 中 textarea 没有 value 属性——它靠标签体内容(即开始和结束标签之间的文本)设置默认值。写成 完全无效,浏览器会忽略 value,只渲染空内容。
正确做法是把默认文字直接写在 和 之间:
<textarea name="bio" rows="4" cols="50">请在此填写个人简介</textarea>
- 所有换行、空格都会被保留并显示为初始内容(包括首尾空白),如需干净起始,建议去掉前后换行和缩进
- 如果内容含 HTML 特殊字符(如
&、、>),必须做 HTML 实体转义,否则可能破坏结构;例如原始值是10 ,得写成10 - 服务端渲染时(如 PHP/Python/Jinja2),务必对变量内容调用对应转义函数,比如 PHP 的
htmlspecialchars($str, ENT_HTML5, 'UTF-8')
表格中嵌套 textarea 时对齐和尺寸容易错位
在 JS 修改默认内容不能用 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
表格里放 里放 textarea 很常见,但默认样式常导致垂直不对齐或宽度溢出。这不是 bug,而是 textarea 默认 display: inline-block 且受 line-height、vertical-align 影响。vertical-align: top 到 或 可解决与同行其他控件(如 input、文字)的基线错位
cols 和 rows 是粗略提示,实际宽度受 CSS width 控制更可靠;推荐设 width: 100% 并配合 box-sizing: border-box 避免 padding 撑出表格table-layout: fixed,textarea 可能被截断,此时需显式设 min-width: 0 防止内容撑不开动态填充 textarea 默认内容要避开 setAttribute
el.setAttribute('value', ...)——textarea 没这个属性,而且即使写了也不会更新显示。必须操作元素的 textContent 或 innerHTML(后者慎用,有 XSS 风险)。
document.querySelector('textarea[name="bio"]').textContent = "新默认内容"
he.escape(str, { isAttributeValue: false }),前端可用简单正则(仅限可信数据)form.reset())会恢复为最初 HTML 中写的标签体内容,不是 JS 后续改的值——这点和 input 的 value 属性行为一致,但原理不同placeholder 和默认内容别混用
textarea 支持 placeholder,但它和默认内容是两回事:placeholder 是灰色提示,焦点进入就消失,不参与提交;而标签体内容是真实初始值,用户可编辑、可清空、提交时若未改就照传。
和 placeholder="请输入...",会造成语义冲突(用户看到“默认内容”又看到提示,困惑)placeholder 更合适;若有回填逻辑(如编辑页),必须用标签体内容placeholder 渲染位置偶有偏移,而标签体内容无此问题,关键场景优先保真textarea 看似简单,真正麻烦的是默认内容的来源控制:服务端直出要转义,JS 动态填要改 textContent,框架里还要区分受控/非受控。最容易被跳过的,就是那个看不见的换行符——它悄悄成了默认值的一部分。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










