2012-03-30 3 views
5

Dzięki ASP.NET uczę się zawiłości polegających na oderwaniu się znacznikami < od wewnątrz <postaci> znaczników. Założyłem, co myślę było proste DOM że nie działa:Chrome je mój pierwszy wewnętrzny <form> - dlaczego?

<form id="Superform" action="javascript: return false;"> 
<form id="Subform1" action="javascript: return false;"> 
    form1 
</form> 
<form id="Subform2" action="javascript: return false;"> 
    form2 
</form> 
</form> 

W tym przykładzie IE8 wydaje się działać normalnie, ale Chrome (18.0.1025.142 beta-m) wydaje się mieć Subform1 znikają. Czy ktoś wie, dlaczego? Czy to błąd Chrome/webkita? Zrobiłem jsFiddle, aby go przetestować - jeśli masz inne przeglądarki przydatne, jestem ciekawy tych wyników.

Wypróbuj przykład pod adresem http://jsfiddle.net/weQmk/9/.

w IE8 uzyskać:

Forms my browser sees: 
Superform 
Subform1 
Subform2 

Ale w Chrome:

Forms my browser sees: 
Superform 
Subform2 
+0

co tag doctype? Uważam, że niektóre doctypy nie obsługują form zagnieżdżonych. IE8 może po prostu bardziej wybaczać niż chrome ... http: //stackoverflow.com/questions/379610/can-you-nest-html-forms –

+0

@Mike McMahon: Doctype jest XHTML 1.0 Transitional. –

+1

http://anderwald.info/internet/nesting-form-tags-in-xhtml/ –

Odpowiedz

13

Formy nie mogą być zagnieżdżone w ten sposób. Po napotkaniu zamykającego znacznika </form> pierwsza otwarta postać zostaje zamknięta.

ta jest również przedstawiona na tej skrzypce: http://jsfiddle.net/weQmk/11/

+0

OK (choć jest to dość irytujące w ASP.NET-land, gdzie cały twój świat jest zawijany przez formularz), ale nie robi tego ". t dość wyjaśnić, dlaczego Chrome sprawia, że ​​jedna forma znika. Dlaczego nie zamyka się po prostu Superform, a następnie pisze Subform? –

+0

Zobacz także: http://stackoverflow.com/questions/9433264/is-it-possible-to-wrap-html-form--elements-in-multiple-form-tags/9433497#9433497 –

+0

Wydaje się działać w dzisiejszych czasach (Chrome v42). – NicBright

Powiązane problemy