web-dev-qa-db-fra.com

Différence entre <input type = 'button' /> et <input type = 'submit' />

Une question stupide n'existe pas, alors allons-y: quelle est la différence entre <input type='button' /> et <input type='submit' />?

213
bounav

Les boutons <input type="button" /> ne soumettent pas de formulaire - ils ne font rien par défaut. Ils sont généralement utilisés avec JavaScript dans le cadre d'une application AJAX.

Les boutons <input type="submit"> soumettent le formulaire dans lequel ils se trouvent lorsque l'utilisateur clique dessus, sauf indication contraire de votre part avec JavaScript.

221
user7094

Un "bouton" est simplement un bouton auquel vous pouvez ajouter des fonctionnalités supplémentaires à l'aide de Javascript. Un type d'entrée "submit" a la fonctionnalité par défaut de soumettre le formulaire dans lequel il est placé (bien que, bien sûr, vous puissiez toujours ajouter des fonctionnalités supplémentaires en utilisant Javascript).

17
Aistina

Button ne soumet pas le formulaire par lui-même.Il s'agit d'un simple bouton utilisé pour effectuer certaines opérations à l'aide de javascript, tandis que Submit est un type de bouton qui, par défaut, soumet le formulaire à chaque fois que l'utilisateur clique sur le bouton submit.

6
Sujeet Srivastava

Il convient également de mentionner qu'une entrée nommée de type = "submit" sera également soumise avec les champs nommés de l'autre formulaire, alors qu'un type d'entrée nommé = "bouton" ne le sera pas.

En d'autres termes, dans l'exemple ci-dessous, l'entrée nommée name=button1 NE SERA PAS sera soumise tandis que l'entrée nommée name=submit1SERA envoyé.

Exemple de formulaire HTML (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>

Le script PHP (checkout.php) qui traite l'action du formulaire ci-dessus:

<?php var_dump($_POST); ?>

Testez ce qui précède sur votre ordinateur local en créant les deux fichiers dans un dossier nommé/tmp/test /, puis en exécutant le serveur Web PHP intégré à partir de Shell:

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

Ouvrez votre navigateur à l'adresse http: // localhost: 30 et voyez par vous-même.

On se demanderait pourquoi aurions-nous besoin de soumettre un bouton nommé? Cela dépend du script back-end. Par exemple, le plug-in WooCommerce WordPress ne traitera pas une page de paiement envoyée à moins que le bouton nommé Place Order ne soit également envoyé. Si vous modifiez son type de , soumettez au bouton , alors ce bouton a gagné ' t être soumis et ainsi le formulaire de commande ne serait jamais traité.

C'est probablement un petit détail, mais vous savez, le diable est dans les détails.

3
Eugen Mihailescu

En réalité, Internet Explorer 8 utilise le premier bouton qu'il rencontre ou le bouton Envoyer. Au lieu d'indiquer facilement ce qui est souhaité en faisant un type d'entrée = soumettre, la commande sur la page est réellement significative.

3
Martin Murphy

Le W3C explique clairement la spécification relative à l'élément Button

Button peut être considéré comme une classe générique pour tout type de boutons sans comportement par défaut.

W3C

0
Mahfoud Boukert

type='Submit' est configuré pour transmettre et obtenir les valeurs sur BACK-END (PHP, .NET, etc.). type='button' reflétera le comportement normal des boutons.

0
Shashank Malviya

<input type="button"> peut être utilisé n’importe où, pas seulement dans le formulaire et ils ne le soumettent pas s’ils sont dans le même formulaire. Bien mieux adapté à Javascript.

<input type="submit"> doit être utilisé uniquement dans les formulaires et ils enverront une demande (GET ou POST) à l'URL spécifiée. Ils devraient pas être placés dans n’importe quel endroit HTML.

0
user6394012