<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>A webpage</title>
</head>
<body>
<p>
<form action="something.php" method="get">
<input type="submit" value="Hello"/>
</form>
</p>
</body>
</html>
Trả lời
Nhìn vào các thông báo lỗi mà bạn nhận được khi bạn cố gắng rằng với http://validator.w3.org
Ngoài một cảnh báo rằng bạn đã không được xác định một mã hóa ký tự (và rằng nó do đó giả định UTF-8), lỗi chính là rằng <p>
không được phép chứa nội dung không trực tuyến. Bạn có thể xóa hoàn toàn <p>
và </p>
hoặc di chuyển chúng bên trong <form>
.
Đối với 'lý do', đó là vì đó là cách nó được định nghĩa trong lược đồ xác định cái gì và cái gì không hợp lệ XHTML. Nếu bạn nhìn vào số this section of the XHTML definition bạn sẽ thấy rằng <p>
chỉ được phép chứa các thẻ văn bản hoặc 'nội dòng' (không phải 'chặn').Tuy nhiên, <form>
được tính là nội dung 'chặn' không phải là nội dung 'nội dòng'.
Nói cách khác, biểu mẫu có thể chứa đoạn văn, nhưng đoạn văn không thể chứa biểu mẫu.
+1 là câu trả lời duy nhất (cho đến nay) để thực sự giải thích vấn đề là gì –
+1 vì cùng một lý do ở đây. Mọi người khác cũng giống như "vâng, nó không xác thực theo validator.w3c.org –
Loại nội dung chỉ được xác định bởi tiêu đề HTTP. – pepkin88
Theo this, bởi vì:
Dòng 8, Cột 44: loại tài liệu nào không cho phép yếu tố "hình thức" ở đây; thiếu một trong "đối tượng", "ins", "del", "bản đồ" thẻ bắt đầu ✉ Yếu tố được đề cập không được phép xuất hiện trong ngữ cảnh trong đó bạn đã đặt; các phần tử khác được đề cập là là những phần tử duy nhất được cho phép ở đó và có thể chứa phần tử được đề cập. Điều này có nghĩa là mà bạn cần phần tử có chứa hoặc có thể bạn đã quên đóng một phần tử trước đó.
Một nguyên nhân có thể cho thông điệp này là mà bạn đã cố gắng đưa một yếu tố khối cấp (chẳng hạn như "p" hoặc "bảng") bên trong một phần tử nội tuyến (chẳng hạn như "a", "nhịp cầu ", hoặc " phông chữ ").
Dòng 9, Cột 40: loại tài liệu không không cho phép phần tử "đầu vào" ở đây; thiếu một "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "trước", "địa chỉ", "fieldset", "ins", "del" bắt đầu-tag loại đầu vào = "gửi" giá trị = "Xin chào" Phần tử được đề cập không được phép xuất hiện trong ngữ cảnh mà bạn đã đặt; các yếu tố được đề cập khác là chỉ những phần tử được phép ở đó và có thể chứa phần tử được đề cập. Điều này có nghĩa là bạn cần một thành phần có chứa hoặc có thể là bạn đã quên đóng một phần tử trước đó.
Một nguyên nhân có thể cho thông điệp này là mà bạn đã cố gắng đưa một yếu tố khối cấp (chẳng hạn như "p" hoặc "bảng") bên trong một phần tử nội tuyến (chẳng hạn như "a", "nhịp cầu ", hoặc " phông chữ ").
+1 cho các mục sau: "... bạn đã cố gắng đặt phần tử cấp khối (chẳng hạn như" p "hoặc" bảng ") bên trong phần tử nội tuyến (chẳng hạn như" a "," span "hoặc" font ")." –
Bạn không thể đặt biểu mẫu bên trong đoạn văn. Viết như thế này:
<body>
<form action="something.php" method="get">
<p>
<input type="submit" value="Hello"/>
</p>
</form>
</body>
Anh ấy hỏi _WHY_ nó không hợp lệ, không phải cách khắc phục. –
Hãy thử sử dụng W3C Markup Validator, sẽ cho bạn biết những gì không hợp lệ với hầu hết các tài liệu HTML và CSS.
Tôi nghĩ anh ấy có thể nhận ra điều này vì anh ấy đã biết nó không hợp lệ. Anh ta hỏi tại sao nó không hợp lệ, không phải vậy. –
Cũng giống như trình duyệt tính hợp lệ của W3C giải thích khá rõ lý do tại sao nó không hợp lệ, tôi đã nghĩ đó là cách thông tin nhất để giải quyết vấn đề. Tốt hơn là nên nói với ai đó cách giải quyết vấn đề, thay vì chỉ cho họ câu trả lời. – DaveR
Tôi đã chạy thử nghiệm với mã HTML của bạn thông qua validator.w3.org và kết quả là bạn cần trao đổi thẻ P và FORM để nó chuyển thành HTML W3C hợp lệ.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>A webpage</title>
</head>
<body>
<form action="something.php" method="get">
<p>
<input type="submit" value="Hello"/>
</p>
</form>
</body>
</html>
Anh ấy đã yêu cầu _WHY_ nó không xác thực, không phải cách khắc phục. –
- 1. XHTML Nghiêm ngặt: thẻ br bên trong thẻ p
- 2. Tại sao * p ++ khác với * p + = 1?
- 3. Tại sao phương thức TaskFactory.StartNew không phải là chung?
- 4. Tại sao phương thức chain() Underscore.js không phải là lười?
- 5. Có phải "div> p" & "div p" giống nhau không?
- 6. hình thức lồng nhau trong ASP.NET MVC
- 7. Tại sao lề phải không hoạt động?
- 8. Tại sao phải trả $ this trong các phương thức setter?
- 9. Validate checkbox không ánh xạ tới thực thể trong một hình thức symfony2
- 10. Thẻ lồng nhau được chấp nhận OK trong XHTML?
- 11. Tại sao mô hình Vứt bỏ trong C# không hoạt động giống như RAII trong C++
- 12. Tại sao toBinaryString không phải là một phương thức thể hiện trong lớp Integer?
- 13. Validate phi mô hình lĩnh vực
- 14. Chính thức XHTML 1.1 DTD so với chính thức XHTML 1.1 Lược đồ XML
- 15. Tại sao trình biên dịch yêu cầu `xóa [] p` so với` xóa p [] `?
- 16. Validate inlines trước khi lưu mô hình
- 17. jQuery Validate Unobtrusive không hoạt động đối với TextArea
- 18. Tại sao phải có phương thức ClassInitialize là tĩnh?
- 19. Tại sao nhiệm vụ không phải lúc nào cũng hoạt động trong các biểu thức Góc?
- 20. tại sao không phải là đa dạng.
- 21. Tại sao các chức năng như thoát, unescape, vv, không phải là các phương thức trên đối tượng String?
- 22. Tại sao phải ghi đè lên phương thức sao chép trong Java
- 23. Formtastic lồng lĩnh vực hình thức mô hình (Rails 3)
- 24. ray lồng mô hình hình thức has_one hiệp hội
- 25. Tại sao không phải là phương thức toLowerCase(); làm việc trong mã của tôi?
- 26. Tại sao/Khi nào sử dụng (!! p) thay vì (p! = NULL)
- 27. Lưu các hình thức lồng nhau trong Django
- 28. Tại sao không phải là Enumerations Iterable?
- 29. tại sao Object.GetType() không phải là ảo?
- 30. Tại sao GetHashCode không phải là thuộc tính như HashCode trong .NET
trang xác thực không đưa ra một số đề xuất? –