ti-enxame.com

o que <form action = "#"> e <form method = "post" action = "#> fazem?

Estou lendo um livro sobre desenvolvimento de html (que eu sou relativamente novo) e apesar do fato de que o livro teve sua primeira publicação há um mês (novembro de 2011), o autor é um codificador experiente e talvez usando # para a ação em uma forma é velha escola?

Porque eu estou tentando obter a essência do código de exemplo e não consigo encontrar uma explicação de form action="#" apesar de procurar por

<form action="#">   

no google, no SO e em www.w3schools.com.

Alguém sabe o que a ação # significa para formulários?

56
SandHawkerTech

A ação normalmente especifica o arquivo/página para o qual o formulário é submetido (usando o método descrito no parâmetro do método (post, get etc.))

Uma ação de # indica que o formulário permanece na mesma página, simplesmente sufixando o URL com #. Uso semelhante ocorre em âncoras. <a href=#">Link</a> por exemplo, permanecerá na mesma página.

Assim, o formulário é submetido à mesma página, que processa os dados, etc.

64
MEURSAULT

action="" será resolvido para o endereço da página. action="#" será resolvido para o endereço da página + #, o que significa um identificador de fragmento vazio.

Fazer o último pode impedir uma navegação (nova carga) para a mesma página e tentar saltar para o elemento com o id no identificador de fragmento. Mas, como está vazio, não vai pular em lugar nenhum.

Geralmente, os autores colocam # em atributos semelhantes a href quando não vão usar o atributo onde estão usando scripts. Nesses casos, eles poderiam usar action="" (ou omiti-lo se a validação permitir).

20
Shadow2531

Aparentemente, "ação" era necessária antes do HTML5 (e # era apenas um stand in), mas você não precisa mais usá-lo. - https://developer.mozilla.org/pt-BR/docs/Web/Guide/HTML/Forms/Sending_and_retrieving_form_data

6
Huntario

A tag # permite enviar seus dados para o mesmo arquivo. Eu vejo isso como um processo de três etapas:

  1. Consultar um banco de dados para preencher um de
  2. Permitir que o usuário altere os dados no formulário
  3. Reenvie os dados para o DB através do script php

Com o método = '#' você pode fazer tudo isso no mesmo arquivo.

Depois que a consulta de envio for executada, a página será recarregada com os dados atualizados do banco de dados.

3
Jorren