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 には form 要素があります。Chrome との違いは何ですか?

4

1 に答える 1

19

フォーム要素が既に別のフォーム要素に囲まれている場合、Chrome はフォーム要素を削除します。また、ASP .Net はサーバーするすべてのページのフォーム タグをレンダリングします。その結果、Chrome は data.Content のフォーム タグを取り除きます。IE や firefox がこのように動作するとは思いません。

編集:これが役立つことを願っています.HTMLフォームのネスト制限をどのように克服しますか?

于 2013-02-25T15:32:51.547 に答える