¿Los elementos de formulario están fuera de una etiqueta de FORM semántica html5?
Frecuentes
Visto 16,877 equipos
62
Si tengo una etiqueta SELECT que filtrará una tabla en función de la elección del usuario, ¿la etiqueta SELECT debe estar en una etiqueta FORM (para ser HTML5 válido), si la funcionalidad resultante no funcionará si JS está deshabilitado (es decir, mostrar la tabla completa o un enlace 'más' en lugar de hacer un filtro del lado del servidor en la selección de la opción de acción / envío del formulario (podemos escribir la selección en JS para que desaparezca del marcado si JS está deshabilitado.
O todos los elementos del formulario deben estar en una etiqueta de formulario independientemente del uso (y, por lo tanto, un valor de atributo de 'acción' nulo).
Sé que HTML5 permite casi cualquier cosa, simplemente no pude encontrar una respuesta definitiva en W3, así que pensé en conocer tus pensamientos. Espero que tenga sentido. Salud.
3 Respuestas
81
Todos los controles de formulario se pueden utilizar en cualquier lugar donde contenido de redacción se espera, lo que significa que pueden aparecer en cualquier parte del cuerpo del documento. Si no necesita enviarlos de nuevo a un servidor, entonces no es necesario que estén asociados con un formulario, sin embargo, he notado que en algunos navegadores no puede aprovechar el funciones de validación de formularios a menos que los elementos puedan potencialmente enviarse.
Una característica nueva de HTML5 es que los controles de formulario ya no necesitan ser el hijo directo de un form
elemento para ser enviado con ese formulario, el form
atributo le permite especificar el id
del formulario con el que se debe enviar el elemento.
respondido 14 nov., 14:23
Si bien robertc proporcionó los enlaces autorizados (y la mejor respuesta), aquí está la especificación HTML5 en la "Edición para autores web" (un poco más legible): dev.w3.org/html5/spec-author-view/… - jody tate
18
Parece que en HTML5 los elementos del formulario pueden estar fuera de un <form>
etiquetar y seguir siendo válido;
<!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 se valida correctamente (menos los obvios errores de codificación de caracteres). No he leído la especificación HTML5 completa, sin embargo, el validador suele ser correcto en este tipo de cuestiones.
respondido 22 mar '11, 01:03
4
La especificación HTML5 específicamente permite <input>
s (y otros elementos asociados a la forma) no tener un <form>
:
Un elemento asociado a un formulario puede tener una relación con un
<form>
elemento, que se llama el elemento propietario del formulario. Si un elemento asociado al formulario no está asociado con un<form>
elemento, se dice que su propietario de formulario es nulo.
¡Así que siéntete libre de usarlos donde tu corazón lo desee!
Respondido 25 Abr '18, 22:04
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas forms html or haz tu propia pregunta.
¿Cómo figura la semántica en esto? en.wikipedia.org/wiki/Semántica ¿Quisiste decir "válido" o "bien formado" [html5], quizás? - amn