如果要使用包含双引号(“)的字符串预填充html文本字段, 你需要对它进行html编码,因为& quot;不幸的是,字符串'“abc”'编码为“& quot; abc& quot;”与表单一起提交给服务器,服务器与字符串“& quot; abc& quot;”无法区分从字面上进入。
使用'来分隔文本字段值属性不是可用选项,因为输入字段是从javascript填充的。转义“with \或\ \”不起作用(Firefox); Javascript允许转义,但html渲染器只看到\和“as distinct。
是否有一个解决方法,包括“在预先填充的html字段中,同时允许输入与html实体名称匹配的原始字符串?
答案 0 :(得分:2)
假设您有字符串""Hello World""
,并且您希望将其放入HTML文本输入中。为此,您需要转义所有HTML实体。它看起来像这样:
<input type="text" value=""&quot;Hello World&quot;"" />
提交后,服务器端将获得字符串""Hello World""
答案 1 :(得分:2)
如果您在文本框中键入"abc"
,它将以%22abc%22
的形式提交给服务器(但您使用的任何语言/框架都应透明地将其解码回"abc"
)
如果您想使用"abc"
预先填充文本框,则可以使用"abc"
作为value
属性。这也将作为%22abc%22
提交给服务器。
如果您在文本框中键入"abc"
,它将以%26quot%3Babc%26quot%3B
的形式提交给服务器(但您使用的任何语言/框架都应透明地将其解码回"abc"
)
如果您想使用"abc"
预先填充文本框,则可以使用&quot;abc&quot;
作为value
属性。这也将作为%26quot%3Babc%26quot%3B
提交给服务器。