Submit ou Button?
No utiliza-se o submit, mas tambem existe uma opção chamada button, existe diferença, alguma dessas tags estão entrando em desuso?
<input type="" />
Marluce Neves
Curtidas 0
Respostas
Marcelo Pastore
24/09/2015
Olá Marluce, a diferença não é tanta.
[url]http://softwarelivre.org/dojo-toolkit/blog/diferencas-entre-tags-button-e-input-com-type-button[/url]
[url]http://softwarelivre.org/dojo-toolkit/blog/diferencas-entre-tags-button-e-input-com-type-button[/url]
GOSTEI 0
Marluce Neves
24/09/2015
Mas o normal é utilizar o submit não é? Minha pergunta se basea pelo que vejo, nos código.
GOSTEI 0
Marcelo Pastore
24/09/2015
Eu utilizo, mas leia as dicas, tem maiores detalhes.
GOSTEI 0
Marluce Neves
24/09/2015
Ta certo Marcelo, obrigada.
GOSTEI 0
Jothaz
24/09/2015
É bem diferente usar o "submit" ou utilizar um "button".
Quando você cria um "submit" como no exemplo abaixo:
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:
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.
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.
GOSTEI 0
Marluce Neves
24/09/2015
A principio estou apenas aprendendo o form no HTML, é apenas um "esqueleto" de uma funcionalidade que vai alem dessa linguagem de marcação, correto, isso vou deixar para depois, mas estou estudando ainda.
GOSTEI 0
Jothaz
24/09/2015
O action pode chamar qualquer tipo de página com conteúdo html, que poderia ser gerada em qualquer linguagem ou em HTML estárico. Pode ser algo assim:
<form action="minha-pagina.html" id="form1">
GOSTEI 0
Marluce Neves
24/09/2015
Como se fosse um link? Agora "puxou" outro assunto, link ou action? faz sentido essa minha pergunta?
GOSTEI 0
Jothaz
24/09/2015
Pode-se se dizer que teria a mesma função, mas o escopo é diferente.
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:
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.
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.
GOSTEI 0
Marluce Neves
24/09/2015
Tudo bem Jothaz, é melhor não estender mesmo, está OK!
GOSTEI 0
Rafael Jeck
24/09/2015
pessoal se pudessem me ajudar estou com problemas em instanciar um botao consulta para ir a uma pagina que tem todos os dados no caso consulta no meu banco de dados alguem poderia me ajudar
GOSTEI 0