2012-03-30 24 views
5

Nhờ ASP.NET tôi có thể tìm hiểu các intracacies của việc đi với < hình thức > thẻ bên trong < mẫu > thẻ. Tôi thiết lập những gì tôi nghĩ là một DOM đơn giản không hoạt động:Chrome đang ăn đầu tiên bên trong của tôi <form> - tại sao?

<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> 

Trong ví dụ này, IE8 dường như làm việc bình thường, nhưng Chrome (18.0.1025.142 beta-m) dường như làm cho Subform1 biến mất. Có ai biết tại sao không? Đây có phải là lỗi Chrome/webkit không? Tôi đã thực hiện một jsFiddle để kiểm tra nó - nếu bạn có các trình duyệt khác tiện dụng, tôi cũng tò mò về những kết quả đó.

Hãy thử ví dụ tại http://jsfiddle.net/weQmk/9/.

Trong IE8 tôi nhận được:

Forms my browser sees: 
Superform 
Subform1 
Subform2 

Nhưng trong Chrome:

Forms my browser sees: 
Superform 
Subform2 
+0

thẻ doctype của bạn là gì? Tôi tin rằng một số loại tài liệu không hỗ trợ các biểu mẫu lồng nhau. IE8 chỉ có thể tha thứ hơn chrome ... http: //stackoverflow.com/questions/379610/can-you-nest-html-forms –

+0

@Mike McMahon: Doctype là XHTML 1.0 Chuyển tiếp. –

+1

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

Trả lời

13

hình thức không thể được lồng vào nhau theo cách đó. Khi gặp phải thẻ đóng </form>, biểu mẫu mở đầu tiên sẽ bị đóng.

Điều này cũng được minh họa trong fiddle này: http://jsfiddle.net/weQmk/11/

+0

Được rồi (mặc dù điều này là khá khó chịu trong ASP.NET-đất, nơi toàn bộ thế giới của bạn được bao bọc bởi một hình thức) nhưng nó doesn ' t khá giải thích tại sao Chrome làm cho một hình thức biến mất .. tại sao nó không chỉ đóng Superform và sau đó viết Subform? –

+0

Xem thêm: http://stackoverflow.com/questions/9433264/is-it-possible-to-wrap-html-form-elements-in-multiple-form-tags/9433497#9433497 –

+0

Dường như nó hoạt động hiện nay (Chrome v42). – NicBright

Các vấn đề liên quan