Une question stupide n'existe pas, alors allons-y: quelle est la différence entre <input type='button' />
et <input type='submit' />
?
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.
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).
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.
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=submit1
SERA 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.
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.
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.
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.
<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.