2013-02-25 5 views
8

アクションからJSONレスポンスに単純なHTMLマークアップを戻します。ここでjQuery ajaxを使用するとChromeがフォーム要素を削除します

は完全な応答(改行は読みやすくするために追加された)である:ここでは

{ 
     "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とFF19ではフォーム要素があります。 Chromeの違いは何ですか?

+1

私はあなたが私たちに問題を再現することができます何かを与えることができ、それ – Alexander

+0

を再現することができませんでしたか? –

+0

それはかなり巨大なページですが、私は試してみます... – Kev

答えて

17

Chromeは、既に別のフォーム要素で囲まれているフォーム要素を削除します。また、ASP .Netはサーバーのすべてのページにフォームタグを表示します。その結果、Chromeはdata.Content内のフォームタグを削除します。私はIEやFirefoxがこのように動作するとは思わない。

編集:、あなたはこれが役立つことを願っていますHow do you overcome the html form nesting limitation?

+0

これは私の場合正しい答えでした。本当の黒い魔法はクロムです... –

+0

私はこの問題を抱えていました。 –

関連する問題