Submit ou Button?

24/09/2015

0

No
<input type="" />
utiliza-se o submit, mas tambem existe uma opção chamada button, existe diferença, alguma dessas tags estão entrando em desuso?
Marluce Neves

Marluce Neves

Responder

Posts

24/09/2015

Marcelo Pastore

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]
Responder

24/09/2015

Marluce Neves

Mas o normal é utilizar o submit não é? Minha pergunta se basea pelo que vejo, nos código.
Responder

24/09/2015

Marcelo Pastore

Eu utilizo, mas leia as dicas, tem maiores detalhes.
Responder

24/09/2015

Marluce Neves

Ta certo Marcelo, obrigada.
Responder

25/09/2015

Jothaz

É bem diferente usar o "submit" ou utilizar um "button".

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.
Responder

25/09/2015

Marluce Neves

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.
Responder

25/09/2015

Jothaz

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">
Responder

25/09/2015

Marluce Neves

Como se fosse um link? Agora "puxou" outro assunto, link ou action? faz sentido essa minha pergunta?
Responder

25/09/2015

Jothaz

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:

<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.
Responder

25/09/2015

Marluce Neves

Tudo bem Jothaz, é melhor não estender mesmo, está OK!
Responder

05/04/2019

Rafael Jeck

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
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar