预先填充的html字段中的引号

时间:2010-01-17 23:37:08

标签: javascript html

如果要使用包含双引号(“)的字符串预填充html文本字段, 你需要对它进行html编码,因为& quot;不幸的是,字符串'“abc”'编码为“& quot; abc& quot;”与表单一起提交给服务器,服务器与字符串“& quot; abc& quot;”无法区分从字面上进入。

使用'来分隔文本字段值属性不是可用选项,因为输入字段是从javascript填充的。转义“with \或\ \”不起作用(Firefox); Javascript允许转义,但html渲染器只看到\和“as distinct。

是否有一个解决方法,包括“在预先填充的html字段中,同时允许输入与html实体名称匹配的原始字符串?

2 个答案:

答案 0 :(得分:2)

假设您有字符串""Hello World"",并且您希望将其放入HTML文本输入中。为此,您需要转义所有HTML实体。它看起来像这样:

<input type="text" value="&quot;&amp;quot;Hello World&amp;quot;&quot;" />

提交后,服务器端将获得字符串"&quot;Hello World&quot;"

答案 1 :(得分:2)

如果您在文本框中键入"abc",它将以%22abc%22的形式提交给服务器(但您使用的任何语言/框架都应透明地将其解码回"abc"

如果您想使用"abc"预先填充文本框,则可以使用&quot;abc&quot;作为value属性。这也将作为%22abc%22提交给服务器。

如果您在文本框中键入&quot;abc&quot;,它将以%26quot%3Babc%26quot%3B的形式提交给服务器(但您使用的任何语言/框架都应透明地将其解码回&quot;abc&quot;

如果您想使用&quot;abc&quot;预先填充文本框,则可以使用&amp;quot;abc&amp;quot;作为value属性。这也将作为%26quot%3Babc%26quot%3B提交给服务器。