2009-03-08 12 views
5

Davvero 2 domande. Perché questi bit di codice non sono validi per XHTML 1.0 Strict. XHTML 1.0 Strict è un requisito del progetto.XHTML Strict Validation

linea 2 causa il problema

tipo di documento non consente elemento "input" qui; mancante di "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "indirizzo", "fieldset", "ins" , "del" start-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> 

E per la linea 2 e 3

tipo di documento non consente elemento "input" qui; mancante di "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "indirizzo", "fieldset", "ins" , "del" start-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

Un requisito? Mi piace il tuo progetto! Il mondo ha bisogno di più di quelli. :) – jalf

risposta

6

Hai bisogno di mettere i vostri input di form in un tag blocco <fieldset> o altro. <input> elementi sono elementi in linea e gli elementi inline non possono apparire in un contesto di blocco. Prova

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

No, ha inserito uno di questi tag: "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre" "indirizzo", "campo", "ins", "del" – strager

+2

è per questo che dice "o altro tag di blocco" – Andy

+0

Sì; è per questo che ho detto "o altro tag di blocco". Ma fieldset è il più appropriato dato quello che sta facendo. –

5

Come il messaggio dice, non si può avere l'elemento di input come un figlio diretto della forma. Deve essere contenuto in uno tra "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "indirizzo", "campo" , "ins", "del".

La soluzione più semplice potrebbe essere quella di inserirli in elementi "p", "div" o "fieldset".

2

XHTML strict richiede di non inserire gli elementi di input direttamente nei moduli: è possibile correggere gli errori inserendo gli input in uno qualsiasi degli elementi a livello di blocco suggeriti dal validatore.

provare qualcosa di simile:

<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>