2013-02-25 12 views
8

Powracam niektóre proste znaczniki HTML w odpowiedzi JSON z działania.Chrome usuwa element formularza podczas używania jQuery ajax

Oto pełna odpowiedź (linebreaks dodana dla czytelności):

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

Oto co mam z nim zrobić po udanej odpowiedzi:

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

Gdy znaczniki renderuje element forma brakuje. Elementy wewnątrz formularza nadal tam są. Dzieje się tak tylko w Chrome. W IE9 i FF 19 znajduje się element formularza. Czym różni się Chrome?

+1

nie mogę odtworzyć go – Alexander

+0

Czy możesz nam coś, co stanie odtworzyć problem? –

+0

To całkiem spora strona, ale spróbuję ... – Kev

Odpowiedz

17

Chrome usuwa element formularza, jeśli jest już otoczony innym elementem formularza. Ponadto ASP .Net renderuje znacznik formularza dla wszystkich stron, na których serwerach, w wyniku czego Chrome usuwa znacznik formularza z pliku data.Content. Nie sądzę, że IE lub firefox zachowuje się w ten sposób.

Edit: Mam nadzieję, że znajdziesz to przydatne, How do you overcome the html form nesting limitation?

+0

To była poprawna odpowiedź w moim przypadku . Prawdziwa czarna magia, że ​​chrom jest ... –

+0

Miałem ten problem i został spowodowany przez niezamknięty znacznik formularza, który przewyższał stronę. –

Powiązane problemy