Pregunta

Aquí dice que es obligatorio.

http://www.w3schools.com/tags/att_form_action.asp

pero veo que los formularios se envían incluso si no especifico un atributo de acción, y el formulario se envía a la página actual, que es exactamente lo que quiero.

¿Fue útil?

Solución

El requisito es solo para estándares .Es perfectamente posible hacer lo que quieras en una página y no seguir los estándares.Es posible que las cosas no se muestren o no funcionen correctamente si lo hace, pero es probable que lo hagan.El objetivo es seguirlos, y la idea es que si los sigues, tu página siempre funcionará;no tienes que preocuparte por nada.

Sí, el formulario es obligatorio para tener un atributo de acción en HTML4.Si no está configurado, es probable que el navegador utilice el mismo método que le proporciona una cadena vacía.Realmente debería establecer action="" que sea HTML4 perfectamente válido, siga los estándares y obtenga exactamente el mismo resultado.

En HTML5, puede especificar una acción en el propio botón de envío.Si no hay uno, utiliza la acción del formulario y, si no se establece, se establece de forma predeterminada en la cadena vacía (tenga en cuenta que no puede establecer explícitamente la acción en una cadena vacía en HTML5).

Otros consejos

Parece que la especificación HTML4 lo requiere.Sospecho que algunos navegadores hacen lo que quieren "facilitar las cosas".Sin embargo, no recomiendo confiar en ello.Dado que su comportamiento es indefinido, un navegador podría razonablemente decidir no hacer nada cuando el formulario se envía sin action.

Puede obtener el comportamiento que desea mientras sigue la especificación dejando la acción en blanco (dado que es relativa, en blanco significa la página actual):

<form action="" ...>

Como lo menciona bazmegakapa, la especificación HTML5 no parece requerir el action atributo:

Los atributos de contenido de acción y formación, si se especifica, debe tener un valor que sea una URL válida, no vacía, potencialmente rodeada de espacios.[énfasis añadido]

Curiosamente, esto significa en HTML5, <form action=""> no es válido, pero no está claro si se requiere un formulario sin una acción para funcionar (enviar a la página actual).

Técnicamente, es una infracción de la especificación HTML 4, pero todos los navegadores enviarán una publicación al autor de la respuesta si no se especifica ninguna acción.Estoy de acuerdo en que no es una buena idea confiar en él, pero funciona.

EDITAR: Como se me ha señalado, esta pregunta está etiquetada como HTML 5: En HTML 5, enumeran el atributo de acción como ya no es necesario: http://www.w3schools.com/html5 / att_form_action.asp que cumple con las especificaciones de HTML 5.

// alerta de resurrección de hilo

Para ampliar la respuesta de animuson ...

Si después de evaluar todos los atributos formaction de botón y action de formulario, si "action" todavía se evalúa como "cadena vacía", entonces desde la sección de especificaciones HTML5.2 4.10.21.3 el punto 8 establece:

Si action es la cadena vacía, deje que action sea la URL del documento del documento de formulario.

en lo que respecta al envío del formulario, que es lo que deseaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top