预填充的 html 字段中的引号
Posted
技术标签:
【中文标题】预填充的 html 字段中的引号【英文标题】:quotes in prepopulated html fields 【发布时间】:2011-01-06 04:31:29 【问题描述】:如果您想使用包含双引号 (") 的字符串预填充 html 文本字段, 您需要对其进行 html 编码,如 " ,不幸的是,字符串 '"abc"' 编码为 ""abc""与表单一起提交给服务器,服务器无法将其与字符串“”abc“”区分开来按字面意思输入。
使用 ' 分隔文本字段值属性不是一个可用选项,因为输入字段是从 javascript 填充的。用 \ 或 \ 转义 " 不起作用 (Firefox);Javascript 允许转义,但 html 渲染器只会将 \ 和 " 视为不同。
是否有一种解决方法可以在预填充的 html 字段中包含 ",同时允许输入与 html 实体名称匹配的原始字符串?
【问题讨论】:
【参考方案1】:如果您在文本框中输入"abc"
,它将作为%22abc%22
提交到服务器(但无论您使用的任何语言/框架都应该透明地将其解码回"abc"
)。
如果您想使用"abc"
预先填充文本框,那么您可以使用"abc"
作为value
属性。这也将作为%22abc%22
提交给服务器。
如果您在文本框中输入"abc"
,它将作为%26quot%3Babc%26quot%3B
提交到服务器(但无论您使用的任何语言/框架都应透明地将其解码回"abc"
)。
如果您想使用"abc"
预先填充文本框,那么您可以使用"abc"
作为value
属性。这也将作为%26quot%3Babc%26quot%3B
提交给服务器。
【讨论】:
【参考方案2】:假设您有字符串""Hello World""
,并且您想将其放入HTML 文本输入中。为此,您需要转义所有 HTML 实体。它看起来像这样:
<input type="text" value="&quot;&amp;quot;Hello World&amp;quot;&quot;" />
提交后,服务器端会得到字符串"&quot;Hello World&quot;"
【讨论】:
以上是关于预填充的 html 字段中的引号的主要内容,如果未能解决你的问题,请参考以下文章