如何将HTML单行text box正确转换为多行文本域textarea
核心错误点
- HTML不存在
<input type="textarea">的合法写法:textarea是独立的双标签表单元素,不是input标签的type属性值,无效的type属性会让浏览器把元素渲染为默认的单行文本输入框,无法实现多行输入效果。 - DOM结构完全混乱:当前代码在未闭合input标签的情况下,提前闭合了外层div、插入了空的form-group容器、凭空放置了
</textarea>闭合标签,浏览器解析时会自动修正错乱结构,最终无法生成预期的多行输入框。 - Textarea默认值赋值方式错误:textarea标签不支持通过
value属性设置初始内容,需要展示的数据库读取内容必须放在<textarea>开标签和</textarea>闭标签之间。
修正后的代码
<div class="form-group"> <label for="user_review">Review </label> <textarea class="form-control" id="user_review" name="user_review" cols="30" rows="5">'.$row["user_review"].'</textarea> </div> <br>
优化建议:如果$row["user_review"]中存储的内容包含HTML特殊字符(如<、>、"、&),直接输出可能破坏HTML结构,建议使用htmlspecialchars($row["user_review"])对输出内容做转义处理,避免渲染异常。
内容的提问来源于stack exchange,提问作者New Developer 2021
相关产品推荐
相关产品推荐

