Validación estricta de XHTML
-
05-07-2019 - |
Pregunta
Realmente 2 preguntas. ¿Por qué estos bits de código no se validan a XHTML 1.0 Strict? XHTML 1.0 Strict es un requisito del proyecto.
La línea 2 causa el problema
El tipo de documentono permite el elemento " input " aquí; falta uno de " p " ;, " h1 " ;, " h2 " ;, " h3 " , " h4 " ;, " h5 " ;, " h6 " ;, " div " ;, < !> quot; pre " ;, " address " ;, " fieldset " ;, " ins " ;, " del " etiqueta de inicio.
<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 < 1mb)</td></tr></table>
</form>
Y para la línea 2 y 3
El tipo de documentono permite el elemento " input " aquí; falta uno de " p " ;, " h1 " ;, " h2 " ;, " h3 " , " h4 " ;, " h5 " ;, " h6 " ;, " div " ;, < !> quot; pre " ;, " address " ;, " fieldset " ;, " ins " ;, " del " etiqueta de inicio.
<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>
Solución
Necesita poner sus entradas de formulario en < fieldset > u otra etiqueta de bloque. < input > los elementos son elementos de formulario en línea , y los elementos en línea pueden no aparecer en un contexto de bloque. Probar
<fieldset>
<input ... />
<fieldset>
Otros consejos
Como dice el mensaje, no puede tener el elemento de entrada como hijo directo del formulario. Debe estar contenido dentro de uno de & Quot; p & Quot ;, & Quot; h1 & Quot ;, & Quot; h2 & Quot ;, & Quot; h3 < !> quot ;, " h4 " ;, " h5 " ;, " h6 " ;, " div " ;, " pre " ;, " address " ;, " fieldset " ;, " ins " , " del " ;.
La solución más simple puede ser ponerlos dentro de " p " ;, " div " o " conjunto de campos " elementos.
XHTML estricto requiere que no coloque elementos de entrada directamente dentro de los formularios; puede corregir los errores colocando sus entradas en cualquiera de los elementos de nivel de bloque sugeridos por el validador.
Pruebe 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>