2009-12-31 27 views
5

HTML sau đây có hợp lệ không? Những gì tôi tự hỏi về cụ thể là vị trí của thẻ <form>.Có phải là <form> hợp lệ trên <tr> không?

<table> 
    <form> 
     <tr> 
      <td> 
       <input id="txt" type="text"></input> 
      </td> 
      <td> 
       <input id="txt" type="text"></input> 
      </td> 
      <td> 
       <input type="submit"></input> 
      </td> 
     </tr> 
    </form> 
</table> 
+1

tôi cảm thấy vô lý về việc đặt biểu mẫu giữa bảng theo cách này. Làm thế nào về gói bảng WHOLE với hình thức? =) – mauris

Trả lời

11

Tôi recomment bằng cách sử dụng trình xác nhận w3c http://validator.w3.org/. Và không có không hợp lệ :-)

+1

tôi muốn cung cấp cho bạn 100 phiếu bầu cho việc này ...hầu hết các nhà phát triển bỏ qua loại xác thực tuyệt vời này :-( – bastianneu

+0

Rất hữu ích, cảm ơn bạn :) – willem

8

Nó không hợp lệ. Tôi đoán bạn muốn xóa phần đệm mặc định của phần tử biểu mẫu. Này được thực hiện tốt hơn thông qua CSS:

form { 
    padding:0; 
    margin:0; 
} 

hoặc

<form style="padding:0;margin:0;"> 

cách tiếp cận của bạn đã từng là rất phổ biến để loại bỏ các đệm dạng mặc định (trước CSS trở nên phổ biến). Bây giờ bạn nên đặt các thẻ biểu mẫu bên ngoài bảng. Tốt nhất là bạn thậm chí không nên sử dụng một bảng ở đây, nhưng đó không phải là câu hỏi, vì vậy tôi sẽ để nó trượt. ;)

+0

Điều này cần được đánh dấu là câu trả lời. –

+0

Hoặc anh ta có thể chỉ muốn sử dụng nhiều biểu mẫu trên một bảng trải dài đến nhiều hàng? Anh ta có lẽ tốt hơn khi sử dụng divs để thực hiện điều đó. –

+1

@Ivan - Javascript nên được sử dụng cho điều đó, gán giá trị cho biểu mẫu ẩn và gửi, vì việc sử dụng nhiều biểu mẫu giống hệt nhau không có ý nghĩa, chỉ thấy một biểu mẫu có thể được gửi trên mỗi trang. Anh ta có thể gán một id cho hàng và sử dụng nó để nhận diện nó. –

3

Không đây là không hợp lệ, TABLE chỉ có thể chứa TBODY, THEAD, TFOOT, CAPTION, COL, COLGROUP. Nếu bạn đang sử dụng XHTML thì bạn cũng có thể đặt tr bên trong table.

+0

Các phần tử con duy nhất mà một phần tử bảng có thể có là chú thích, col, colgroup, tbody, thead và tfoot. (XHTML thêm các phần tử tr vào danh sách đó). các yếu tố thứ là không thể chấp nhận được. – Quentin

+0

Đúng, ý tôi là TR :) – willem

+0

Tôi đã sai chính tả TH, tôi đã sửa lỗi đó và thêm tất cả các phần tử khác (phải kiểm tra tài liệu). Vì anh ta không chỉ định phiên bản HTML anh ta đang sử dụng, tôi đã thêm TR vào lis cũng :) –

2

số của nó see: http://www.w3.org/TR/html4/struct/tables.html#edef-TABLE

<!ELEMENT TABLE - - 
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> 

Yếu tố <form> có thể xuất hiện ở tất cả những nơi mà bạn có thể có block nội dung. Vì vậy, <form> có thể đi theo số <body>, <blockquote>, <noscript> (đủ kỳ quặc cũng trong <map>). Bởi vì block cũng có thể đi trong flow, nó cũng có thể xuất hiện trong <div>, <ins>, <del>, <dd>, <li>, <td>, <th>

+1

Biểu mẫu không thể xuất hiện trong biểu mẫu hoặc nút, chúng được loại trừ một cách rõ ràng: ' 'và' ' – Quentin

+0

Cảm ơn David - giám sát một phần của tôi. Cảm ơn! –

-3

Nó không thích hợp HTML, nhưng nó đôi khi làm mất các dòng sản phẩm nào.

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