编辑:重新阅读我的帖子后,我想我有点不清楚问题是什么。让我尝试重新措辞:
用户可以使用表单中的 textarea 字段在我的网站上发表评论。应该可以在注释中使用<br />
. 然后评论作为字符串存储在 mysql-database 中(转义以使其安全),然后从数据库中检索并显示在站点上。显示注释时无法识别常规换行符。
用户可以编辑他们的评论,在这种情况下,原始评论会显示在要修改的文本区域字段中(见下图)。问题是,如果存在任何<br />
代码,则代码与 XHTML 1.0 一样无效(请参阅下面的错误消息)。
我可以使用任何其他类型的换行符使代码有效吗?如评论中所述,与 xml:space="preserve" 结合使用的常规换行符不起作用(换行符显示在 textarea 字段中,但当评论在网站上显示为普通文本时则不显示)。
原始问题:
我有一个 Web 表单,其中包含一个用于留下评论的 textarea 字段,我希望它能够使用<br />
. 下面是一个简单的例子:
(来源:shipit.se)
它按预期工作,但是当使用 W3C 验证服务时,它不会验证为 XHTML 1.0 过渡。这是我得到的错误:
- 错误第 90 行,第 1587 列:文档类型在此处不允许元素“br”
…ription" rows="0" cols="0">Test<br />line break</textarea></dd><dt class="cha
上面提到的元素是在不允许的上下文中找到的。这可能意味着您有错误的嵌套元素——例如“body”部分中的“style”元素而不是“head”内部——或者两个重叠的元素(这是不允许的)。
此错误的一个常见原因是在 HTML 文档中使用了 XHTML 语法。由于 HTML 的隐式关闭元素规则,此错误可能会产生级联效果。例如,在 HTML 文档的“head”部分中为“meta”和“link”使用 XHTML 的“self-closure”标签可能会导致解析器推断“head”部分的结尾和“body”部分的开头" 部分(其中不允许使用“链接”和“元”;因此报告了错误)。
有没有办法让换行符成为有效代码,或者我是否需要找到一种解决方法(例如,在 textarea 字段中使用特定标签进行换行符,然后在<br />
稍后显示评论时将其替换)?