【问题标题】:quotes in prepopulated html fields预填充的 html 字段中的引号
【发布时间】:2011-01-06 04:31:29
【问题描述】:

如果您想使用包含双引号 (") 的字符串预填充 html 文本字段, 您需要对其进行 html 编码,如 " ,不幸的是,字符串 '"abc"' 编码为 ""abc""与表单一起提交给服务器,服务器无法将其与字符串“”abc“”区分开来按字面意思输入。

使用 ' 分隔文本字段值属性不是一个可用选项,因为输入字段是从 javascript 填充的。用 \ 或 \ 转义 " 不起作用 (Firefox);Javascript 允许转义,但 html 渲染器只会将 \ 和 " 视为不同。

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

【问题讨论】:

    标签: javascript 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="""Hello World""" />

      提交后,服务器端会得到字符串""Hello World""

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多