2012-02-14 59 views
5

Tại nguy cơ nghe có vẻ giống như một kẻ ngốc - Các nhà thiết kế html (html5) tại công ty chúng tôi tiếp tục đưa cho tôi mocks chức năng với các thẻ hình thức mà không có thuộc tính ...Thẻ biểu mẫu HTML không có thuộc tính - bất kỳ lý do nào không?

<form> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

Mỗi lần tôi thấy điều này tôi đã làm mất hy vọng trong nhân loại chỉ hơn một chút. Nhưng tôi không biết liệu tôi có nên làm tròn chúng lên và thuyết trình chúng về các thuộc tính biểu mẫu và tại sao chúng ta cần chúng vì tôi dường như không tìm thấy bất kỳ tài liệu nào nói rằng chúng là "bắt buộc". Theo mặc định, tôi biết thẻ biểu mẫu sẽ giả định mọi thứ, như phương pháp và hành động, nhưng tôi thích các thuộc tính đó được đặt ra thay vì bỏ qua. Nó chỉ là cách nó luôn luôn được cho những người trong chúng ta đã viết HTML kể từ khi nó bắt đầu.

Vì vậy, câu hỏi chung là - Có điều gì sai (tuy nhiên bạn muốn xác định điều đó) bằng cách sử dụng thẻ biểu mẫu không có thuộc tính? Nếu hành động dự định của bạn là trang hiện tại và phương thức dự định sẽ nhận được, thì đối số nào có sẵn để bao gồm so với loại trừ các thuộc tính mặc định? Hoặc gán cho nó một id mà bạn không sử dụng?

tôi mong đợi để thấy điều này:

<form id="search_form" action="" method="get"> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

Trả lời

8

Nó sẽ phụ thuộc vào DOCTYPE bạn đang xác nhận lại. Ví dụ trong HTML 4.01 Chuyển tiếp và Nghiêm ngặt, thuộc tính action là bắt buộc trong khi thuộc tính method là tùy chọn.

Trong HTML 5 cả hai thuộc tính đều là tùy chọn.

+0

Đó không phải là quá khó để tìm thấy, nhưng rất khó để tìm thấy bất cứ điều gì mà đề cập đến việc có hay không một thẻ biểu mẫu có thể được sản phẩm nào hoàn toàn. Quay lại trong ngày, tên đã không được dùng cho thẻ biểu mẫu và id được yêu cầu để xác thực. Bây giờ tôi không thấy bất cứ điều gì đặc biệt nói rõ hoặc là nên ở đó. –

+3

@KaiQing, chỉ cần sử dụng http://validator.w3.org/ –

1

Có vẻ như hành động đó là yêu cầu của tiêu chuẩn html 4.

action  %URI;   #REQUIRED 

http://www.w3.org/TR/html4/interact/forms.html

+0

Tuy nhiên, hầu hết các trình duyệt sẽ vui lòng mặc định giá trị cho URL hiện tại (giả sử chế độ quirks). – Oded

+0

Đúng, nhưng về mặt kỹ thuật cho html để xác thực rằng nên là một hành động trống rỗng, không phải là hành động nào cả. –

+0

Đúng, giả sử DOCTYPE chính xác;) – Oded

3

Vấn đề lớn nhất với việc không có một idaction thuộc tính trên một hình thức là nếu bạn có nhiều hơn một hình thức trên trang đó là rất khó để nói cái nào được nhắc đến - trong cả hai khách hàng hoặc máy chủ mã.

Vì James Montagne đề cập đến trong his answer cho HTML 4.01 chuyển tiếp, thuộc tính action là bắt buộc.

Như một vấn đề chung, cá nhân tôi sẽ luôn luôn rõ ràng về các số id, actionmethod - giữ các thuộc tính quan trọng này ở trạng thái mở và làm cho chúng không bị lãng quên.

+0

Đó là khá nhiều cảm xúc của tôi về vấn đề này. Tôi muốn tuyên bố chúng bởi vì nó có ý nghĩa để làm như vậy - vì thiếu một cách tốt hơn để nói nó. Khi họ rời khỏi nó, tôi không biết nếu đó là bởi vì họ nghĩ rằng đó là cách đúng đắn để làm điều đó hoặc nếu họ giả định tôi sẽ điền vào nó với các thông tin đúng.Nhưng chúng tôi không thuê người dùng html để rời khỏi lỗ và yêu cầu kiểm toán đầy đủ. Nếu không, chúng tôi sẽ tự làm và tiết kiệm thời gian. –

+2

@KaiQing - Nếu đó là yêu cầu của bạn từ họ, hãy nói với họ về điều đó. – Oded

+1

True - trong bài viết này tất cả tôi đã thực sự tìm kiếm là một số loại tài liệu nói rằng thẻ hình thức thực sự cần một cái gì đó trong họ. Nếu không, đối số của tôi chỉ là ý kiến ​​hay sở thích. Dường như trong trường hợp này nó chỉ là vậy. Biểu mẫu sẽ không có thuộc tính. –

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