2009-03-08 10 views
5

Realmente 2 preguntas. ¿Por qué estos fragmentos de código no validan XHTML 1.0 Strict? XHTML 1.0 Strict es un requisito del proyecto.XHTML Estricta validación

Línea 2 causa el problema

tipo de documento no permite elemento "entrada" aquí; falta uno de "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "dirección", "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> 

Y para la línea 2 y 3

tipo de documento no permite elemento "entrada" aquí; falta uno de "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "dirección", "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

¿Es necesario? Me gusta tu proyecto! El mundo necesita más de esos. :) – jalf

Respuesta

6

que necesita para poner sus entradas de formulario en una etiqueta de bloque de campos < > u otro. <entrada> elementos son elementos de formulario en línea, y los elementos en línea pueden no aparecer en un contexto de bloque. Pruebe

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

No, él lo puso en cualquiera de estas etiquetas: "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre" , "dirección", "fieldset", "ins", "del" – strager

+2

es por eso que dice "u otra etiqueta de bloque" – Andy

+0

Sí; es por eso que dije "u otra etiqueta de bloqueo". Pero fieldset es el más apropiado dado lo que está haciendo. –

5

Como dice el mensaje, no se puede tener el elemento de entrada como un hijo directo de la forma. Debe estar dentro de uno de "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "dirección", "fieldset" , "ins", "del".

La reparación más simple puede ser colocarlos dentro de los elementos "p", "div" o "fieldset".

2

XHTML estricto requiere que usted no pone los elementos de entrada directamente dentro de las formas - se puede corregir los errores mediante la colocación de sus entradas en cualquiera de los elementos en bloque sugeridas por el validador.

intentar algo como esto:

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