2009-03-08 11 views
5

Wirklich 2 Fragen. Warum validieren diese Bits nicht zu XHTML 1.0 Strict? XHTML 1.0 Strict ist eine Projektanforderung.XHTML Strenge Validierung

Linie 2 verursacht das Problem

Dokumenttyp nicht Element "Eingang" hier nicht erlaubt; fehlende von "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "vor", "adresse", "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> 

Und für Linie 2 und 3

Dokumenttyp Element "input" hier nicht erlauben; fehlende von "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "vor", "adresse", "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

Eine Anforderung? Ich mag dein Projekt! Die Welt braucht mehr davon. :) – jalf

Antwort

6

Sie benötigen Formulareingaben in einem <Fieldset> oder anderen Block-Tag zu setzen. <Eingabe> Elemente sind Inline-Formularelemente und Inline-Elemente möglicherweise nicht in einem Blockkontext angezeigt. Versuchen Sie

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

Nein, er hat es in eines dieser Tags eingefügt: "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre" , "adresse", "fieldset", "ins", "del" – strager

+2

deshalb heißt es "oder andere block tag" – Andy

+0

Yep; Deshalb habe ich "oder anderes Block-Tag" gesagt. Aber Fieldset ist am besten geeignet angesichts dessen, was er tut. –

5

Wie die Meldung sagt, können Sie das Eingabeelement als direktes Kind der Form nicht haben. Es muss in einem von "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "adresse", "fieldset" enthalten sein , "ins", "del".

Einfachste Lösung kann sein, sie in "p", "div" oder "fieldset" -Elemente zu setzen.

2

XHTML strikt erfordert, dass Sie keine Eingabeelemente direkt in Formularen platzieren. Sie können die Fehler beheben, indem Sie Ihre Eingaben in eines der vom Validator vorgeschlagenen Blockelemente einfügen.

so etwas wie dieses Versuchen:

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