2013-02-25 13 views
8

Ich gebe einige einfache HTML-Markup in einer JSON-Antwort von einer Aktion zurück. HierChrome entfernt Formularelement bei der Verwendung von jQuery Ajax

ist die vollständige Antwort (Zeilenumbrüche hinzugefügt, um die Lesbarkeit):

{ 
     "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 
} 

Hier ist, was ich mit ihm tun nach einer erfolgreichen Antwort:

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

Wenn das Markup macht, das Formularelement wird vermisst. Elemente innerhalb des Formulars sind noch vorhanden. Dies geschieht nur in Chrome. In IE9 und FF 19 ist das Formularelement vorhanden. Was ist in Chrome anders?

+1

Ich konnte es nicht reproduzieren – Alexander

+0

Können Sie uns etwas geben, das Problem zu reproduzieren? –

+0

Es ist eine ziemlich große Seite, aber ich werde versuchen ... – Kev

Antwort

17

Chrome entfernt das Formularelement, wenn es bereits von einem anderen Formularelement umgeben ist. ASP.Net rendert auch form-Tags für alle Seiten, die es verwaltet, daher entfernt Chrome das Formular-Tag in data.Content. Ich glaube nicht, dass IE oder Firefox sich so verhalten.

Edit: Hoffe, dass Sie dies nützlich finden, How do you overcome the html form nesting limitation?

+0

Das war die richtige Antwort in meinem Fall . Wirklich schwarze Magie, die Chrom ist ... –

+0

Ich hatte dieses Problem und es wurde durch ein nicht geschlossenes Formular-Tag weiter oben auf der Seite verursacht. –

Verwandte Themen