2011-03-22 7 views
54

Si tengo una etiqueta SELECT que filtrará una tabla según la elección del usuario, ¿la etiqueta SELECT debe estar en una etiqueta FORM (para ser válida HTML5), si la funcionalidad resultante no funcionará si JS se desactivó (es decir, Mostrará la tabla completa o un enlace "más" en lugar de hacer un filtro del lado del servidor al seleccionar la opción de acción/enviar formulario (podemos escribir la selección en JS para que desaparezca del marcado si JS está deshabilitado.¿Los elementos de formulario están fuera de una etiqueta FORM semántica html5?

O todos los elementos de formulario deben estar en una etiqueta de formulario independientemente del uso (y por lo tanto un valor de atributo de "acción nula")

Sé que HTML5 permite casi cualquier cosa, simplemente no pude encontrar una respuesta definitiva en W3 , así que pensé en obtener tus pensamientos. Espero que tenga sentido. Saludos.

+0

¿Cómo se ve la semántica en esto? https://en.wikipedia.org/wiki/Semantics ¿Quisiste decir "válido" o "bien formado" [html5], quizás? – amn

Respuesta

17

Parece que en los elementos de formulario HTML5 pueden estar fuera de una etiqueta <form> y seguir siendo válidos;

<!DOCTYPE html> 
<html> 
<head> 
<title>Just making this valid</title> 
</head> 
<body> 

<select> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 

</body> 

</html> 

El código anterior valida con éxito (menos los errores obvios de codificación de caracteres). No he leído toda la especificación de HTML5, sin embargo, el validador suele ser correcto en este tipo de cuestiones.

+0

Ok, ¡gracias por eso! – Anon

70

Todos los controles de formulario se pueden usar en cualquier lugar donde se espere phrasing content, lo que significa que pueden aparecer casi en cualquier parte del cuerpo del documento. Si no necesita enviarlos de vuelta a un servidor, entonces no es necesario que se asocien con un formulario, sin embargo, he notado que en algunos navegadores no puede aprovechar el form validation features a menos que los elementos puedan ser enviado.

Una característica nueva de HTML5 es que los controles de formulario ya no tienen que ser el hijo directo de un elemento form con el fin de ser presentado con esa forma, el form attribute le permite especificar el id de la forma del elemento debe ser presentada con.

+3

Mientras robertc proporcionó los enlaces autoritativos (y la mejor respuesta), aquí está la especificación HTML5 en la "Edición para autores web" (un poco más legible): http://dev.w3.org/html5/spec-author-view /content-models.html#phrasing-content-0 –

Cuestiones relacionadas