Diferencia entre y


No hay tal cosa como una pregunta estúpida, así que aquí vamos: ¿Cuál es la diferencia entre <input type='button' /> y <input type='submit' />?

Author: Asif, 2008-11-14

8 answers

<input type="button" /> los botones no enviarán un formulario - no hacen nada por defecto. Generalmente se usan junto con JavaScript como parte de una aplicación AJAX.

<input type="submit"> los botones enviarán el formulario en el que se encuentran cuando el usuario haga clic en ellos, a menos que especifique lo contrario con JavaScript.

 216
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-17 09:34:00

Un 'botón' es solo eso, un botón, al que puede agregar funcionalidad adicional usando Javascript. Un tipo de entrada' submit ' tiene la funcionalidad predeterminada de enviar el formulario en el que se coloca (aunque, por supuesto, aún puede agregar funcionalidad adicional usando Javascript).

 18
Author: Aistina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-14 14:30:11

El botón no enviará el formulario en su own.It es un botón simple que se utiliza para realizar alguna operación mediante el uso de javascript, mientras que Enviar es un tipo de botón que por defecto enviar el formulario cada vez que el usuario hace clic en el botón enviar.

 9
Author: Sujeet Srivastava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-26 10:45:34

IE 8 en realidad utiliza el primer botón que encuentra enviar o botón. En lugar de indicar fácilmente cuál se desea haciendo un tipo de entrada = enviar el orden en la página es realmente significativo.

 5
Author: Martin Murphy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-14 23:03:39

También se debe mencionar que una entrada con nombre de type = "submit"también se enviará junto con los campos con nombre del otro formulario, mientras que una entrada con nombre type=" button " no lo hará.

Con otras palabras, en el ejemplo a continuación, la entrada nombradaname=button1 NO se enviará mientras la entrada con nombrename=submit1 Será enviado.

Formulario HTML de muestra (index.html):

<form action="checkout.php" method="POST">

  <!-- this won't get submitted despite being named -->
  <input type="button" name="button1" value="a button">

  <!-- this one does; so the input's TYPE is important! -->
  <input type="submit" name="submit1" value="a submit button">

</form>

El script PHP (checkout.php) que procesan la acción del formulario anterior:

<?php var_dump($_POST); ?>

Pruebe el arriba en su máquina local creando los dos archivos en una carpeta llamada / tmp / test / luego ejecutando el servidor web PHP incorporado desde shell:

php -S localhost:3000 -t /tmp/test/

Abra su navegador en http://localhost:3000 y compruébalo por ti mismo.

Uno se preguntaría por qué tendríamos que enviar un botón con nombre? Depende del script de back-end. Por ejemplo, el plugin de WordPress WooCommerce no procesará una página de pago publicada a menos que también se envíe el botón con nombre Place Order. Si altera su tipo desde submitto button entonces este botón no se enviará y, por lo tanto, el formulario de pago nunca se procesará.

Esto es probablemente un pequeño detalle, pero ya sabes, el diablo está en los detalles.

 2
Author: Eugen Mihailescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-18 09:31:48

<input type="button"> se pueden usar en cualquier lugar, no solo dentro de la forma y no envían la forma si están en una. Mucho más adecuado con Javascript.

<input type="submit"> se debe usar solo en formularios y enviarán una solicitud (ya sea GET o POST) a la URL especificada. Deben no ponerse en ningún lugar HTML.

 1
Author: Umyras Dortos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-31 18:36:28

W3C dejar claro, en la especificación sobre el elemento botón

Button puede ser visto como una clase genérica para todo tipo de Botones sin comportamiento predeterminado.

W3C

 0
Author: Mahfoud Boukert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-13 19:20:11

type='Submit' está configurado para reenviar y obtener los valores en el BACK-END (PHP,. NET, etc.). type='button' reflejará el comportamiento normal del botón.

 0
Author: Shashank Malviya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-30 04:09:33