10

我在动作的 JSON 响应中返回了一些简单的 HTML 标记。

这是完整的响应(为便于阅读添加了换行符):

    {
        "Success":true,
        "Content":"\r\n
<div class=\"editor-form\">\r\n

<form action=\"/Blah/Blah/5104?id=9\" method=\"post\">

<input data-val=\"true\" data-val-number=\"The field Id must be a number.\" data-val-required=\"The Id field is required.\" id=\"Id\" name=\"Id\" type=\"hidden\" value=\"5104\" />

<input data-val=\"true\" data-val-number=\"The field Vat Rate must be a number.\" data-val-required=\"The Vat Rate field is required.\" id=\"VatRate\" name=\"VatRate\" type=\"hidden\" value=\"1.2000\" />

<div class=\"display-field\">\r\n\t

<label for=\"Price\">Price (Ex-VAT)</label>\r\n\t

<input class=\"text-box single-line\" data-val=\"true\" data-val-number=\"The field Price must be a number.\" data-val-required=\"The Price field is required.\" id=\"Price\" name=\"Price\" type=\"text\" value=\"92.50\" />\r\n\t

</div>\r\n

</form>
</div>",
"Data":null,
"Errors":null
}

以下是我在成功回复后的处理方式:

$("#EditPriceDialog").html(data.Content).dialog(MyProject.UI.DialogOptions({ minWidth:380, minHeight:200, modal:true }))

呈现标记时,缺少表单元素。表单内的元素仍然存在。这只发生在 Chrome 中。在 IE9 和 FF 19 中,表单元素就在那里。Chrome 有什么不同?

4

1 回答 1

19

如果表单元素已经被另一个表单元素包围,Chrome 会删除它。此外,ASP .Net 为其服务器的所有页面呈现表单标记,因此 Chrome 剥离了 data.Content 中的表单标记。我不认为 IE 或 firefox 有这种行为。

编辑:希望您会发现这很有用,您如何克服 html 表单嵌套限制?

于 2013-02-25T15:32:51.547 回答