Submit ou Button?
24/09/2015
0
<input type="" />
Marluce Neves
Posts
24/09/2015
Marcelo Pastore
[url]http://softwarelivre.org/dojo-toolkit/blog/diferencas-entre-tags-button-e-input-com-type-button[/url]
24/09/2015
Marluce Neves
24/09/2015
Marcelo Pastore
25/09/2015
Jothaz
Quando você cria um "submit" como no exemplo abaixo:
<form action="action_page.php"> First name:<br> <input type="text" id="nome" value="Mequetrefe"> <br> <input type="submit" id="enviar" value="Enviar"> </form>
Você esta dizendo para a página que ao clicar no botão de noem "enviar" é para executar o action "action_page.php" do form. Então seria uma forma implicita de executar um ação, no caso uma página php. Se você definir um "submit" e não definir uma action não vai ocorre nada. Outro detalhe o submit é atrelado a action do form então só vai rodar aquela action.
Ao criar um button e definir um uma ação no evento onclick você arbtrariamente rodará o uma função qualquer que esteja definida na sua página. Veja o exemplo:
<form action="action_page.php" id="form1"> First name:<br> <input type="text" id="nome" value="Mequetrefe"> <br> <button type="button" id="enviar" onclick="enviar()">Envia</button> <br> <button type="button" id="modal" onclick="modal()">Modal</button> <br> <button type="button" id="detalha" onclick="detalha()">Detlhar</button> </form> <script> function enviar() { document.form1.action = "chama_pagina-diferente-da-action-original.php" ] function modal() { //Aqui função para exibir modal ] function detalha() { //Aqui função para detlhar, por exemplo ] </script>
No exemplo acima apesar de existir um action definido para o form, foi definido no botão "enviar" a execução de uma função que altera o action do form e roda abre um página definida nesta nova action. Note que mesmo existindo um action definido para o form ele não vai ser executado, pois não é chamada nem existe um botão submit.
Botão do tipo submit sempre vai executar o action do form, botões comuns executa uma função definida no evento onclick.
25/09/2015
Marluce Neves
25/09/2015
Jothaz
<form action="minha-pagina.html" id="form1">
25/09/2015
Marluce Neves
25/09/2015
Jothaz
Tanto o action como o link (<a href..>) vão redirecionar para a página indicada, só que o action é exclusivo para ser usado/atribuido a formulário e o link é um controle especifico que pode ser utilizado em qualquer parte da página inclusive dentro de um formulário.
Outro detalhe importantíssimo é que o action submete (envia) o formulário e você pode recuperar os campos, usando um linguagem back-end, em outra página através de "request.form" e manipulá-los de acordo com sua necessidade. No caos do link não é passado/submetido os campos do formulário.
Porém pode-se passar parâmetros via link e recuperá-los através de "requst.querystring", via linguagem back-end e usá-los de acordo com a necessidade. Veja um exemplo de um link passando parâmetros:
<a href="minha-pagina.aspx?nome=Marluce" />
No caso é chamada uma página "minha-pagina.aspx" e é passado um parâmetro "nome" com o valor "Marluce" que pode ser recuperado e usado.
Não vou-me estender, pois sem conhecer uma linguagem back-end fica um pouco difícil abstrair o conceito. Com HTML puro não é possível manipular o objeto Request.
25/09/2015
Marluce Neves
05/04/2019
Rafael Jeck
Clique aqui para fazer login e interagir na Comunidade :)