2011-08-13 203 views
1

我不知道什麼是錯的這些HTML標籤:W3C驗證堅持的按鈕不被接受:W3C驗證抱怨輸入標籤

<div id='mainDiv'> 
    <div id='div1' > 
    <form id='SampleFormID' action=''> 
    <input type='button' id='downloadSample' ><br> 
    </form> 
    </div> 
</div> 

W3C錯誤:

Line 144, Column 49: document type does not allow element "INPUT" here; 
    missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", 
    "ADDRESS" start-tag 


I'm using <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">. 
+0

您也可以看看這裏: http://stackoverflow.com/questions/253312/why-wont-this-xhtml-form-validate – Pieniadz

回答

4

你有例如,將輸入元素放入div中。

<div id='mainDiv'> 
    <div id='div1' > 
    <form id='SampleFormID' action=''> 
     <div><input type='button' id='downloadSample' ></div> 
    </form> 
    </div> 
</div> 
+0

你必須這樣做的原因是因爲'input'元素需要在塊級元素內部,比如'div'。 [只是爲了防止發生這種情況。](http://nerdmeltla.com/wp-content/uploads/2011/08/the-more-you-know.jpg) – sdleihssirhc

+0

[HTML4]就是這種情況( http://www.w3.org/TR/html401/interact/forms.html#edef-FORM)。但是,在[HTML5](http://www.w3.org/TR/html5/forms.html#the-form-element)中,表單不再需要塊級元素,而是流元素(內聯元素)。 – Shi

1

試試這個,

<div id='mainDiv'> 
    <div id='div1' > 
    <form id='SampleFormID' action=''> 
    <p><input type='button' id='downloadSample' /></p> 
    </form> 
    </div> 
</div> 
2

驗證器是假設HTML 4.0嚴格。如果你用<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">替換你當前的DOCTYPE聲明,它將被驗證。

+1

或者使用HTML5文檔類型'<!DOCTYPE html>'。 – Shi

0

@stewe

最佳答案,輸入標籤需要的任何覆蓋碼中,無論是<div><p>。 但是最好的一個是<div></div>,因爲它不會對輸入標籤進行格式化,而是從普通輸出或<p>標籤的通用輸出中進行格式化。