2009-03-08 7 views
5

Thực sự là 2 câu hỏi. Tại sao các bit mã này không hợp lệ với XHTML 1.0 Strict. XHTML 1.0 Strict là một yêu cầu của dự án.XHTML Strict Validation

Dòng 2 gây ra vấn đề

loại tài liệu không cho phép yếu 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.

<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="hidden" name="max_file_size" value="1048576" /> 
<table><tr><td><b>Image location: </b></td><td><input type="file" name="file" size="30"/></td></tr> 
<tr><td><b>Caption: </b></td><td><input type="text" name="caption" size="30"/></td></tr> 
<tr><td><input name="submit" type="submit" value="Upload" /></td><td>*(png, jpeg, jpg and gif files &lt; 1mb)</td></tr></table> 
</form> 

Và đối với dòng 2 và 3

loại tài liệu không cho phép yếu 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.

<form action="#"> 
    <input type="text" size="30" name="query" value="" onkeypress="return disableEnterKey(event)" /> 
    <input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" /> 
</form> 
+1

Yêu cầu? Tôi thích dự án của bạn! Thế giới cần nhiều hơn thế. :) – jalf

Trả lời

6

Bạn cần phải đặt đầu vào cho biểu mẫu trong <fieldset> hoặc khác tag khối. Các thành phần < nhập > là các phần tử biểu mẫu nội tuyến và các phần tử nội tuyến có thể không xuất hiện trong ngữ cảnh khối. Hãy thử

<fieldset> 
    <input ... /> 
<fieldset> 
+0

Không, anh ta đặt nó vào bất kỳ thẻ nào trong số các thẻ sau: "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "trước" , "địa chỉ", "fieldset", "ins", "del" – strager

+2

đó là lý do tại sao nó nói "hoặc thẻ chặn khác" – Andy

+0

Yep; đó là lý do tại sao tôi nói "hoặc thẻ chặn khác". Nhưng fieldset là thích hợp nhất cho những gì anh ta đang làm. –

5

Như thông báo cho biết, bạn không thể có các yếu tố đầu vào như một đứa trẻ trực tiếp của biểu mẫu. Nó phải được chứa trong một "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "trước", "địa chỉ", "fieldset" , "ins", "del".

Sửa lỗi đơn giản nhất có thể là đặt chúng bên trong các phần tử "p", "div" hoặc "fieldset".

2

XHTML nghiêm ngặt yêu cầu bạn không đưa các yếu tố đầu vào trực tiếp vào biểu mẫu - bạn có thể sửa lỗi bằng cách đặt đầu vào của bạn trong bất kỳ thành phần cấp khối nào do trình xác thực đề xuất.

Hãy thử một cái gì đó như thế này:

<form action="#"> 
    <div> 
     <input type="text" size="30" name="query" value="" onkeypress="return disableEnterKey(event)" /> 
     <input type="button" name="searchButton" value="Search" onclick="loadResults(this.form)" /> 
    </div> 
</form>