input type="submit"
et le button
tag sont-ils interchangeables? ou s'il y a une différence, alors quand l'utiliser input type="submit"
et quand button
?
Et s'il n'y a pas de différence, pourquoi avons-nous 2 balises dans le même but?
html
accessibility
w3c
web-standards
semantic-markup
Jitendra Vyas
la source
la source
button
et l'value
attribut dans une version d'IEinput
enverra simplement ce que vous attendiez, une version d'IE ne fonctionne pas bien avecbutton
s.input type="button"
vsbutton type=button
: stackoverflow.com/questions/469059/…Réponses:
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
Donc, pour la fonctionnalité seulement, ils sont interchangeables!
(N'oubliez pas,
type="submit"
c'est la valeur par défautbutton
, alors laissez-la!)la source
type="submit"
avec le bouton, comme la valeur par défauttype
estsubmit
.type
valeur par défaut étaitbutton
. Je préfère expliciter chaque attribut pour éviter toute incohérence du navigateur.Le
<input type="button">
est juste un bouton et ne fera rien par lui-même. Le<input type="submit">
, à l'intérieur d'un élément de formulaire, soumettra le formulaire lorsque vous cliquez dessus.Un autre bouton «spécial» utile est
<input type="reset">
celui qui effacera le formulaire.la source
<input>
le point et les<button>
mots clés. Vous avez fourni des informations utiles sur<input>
dans votre réponse, mais il manque le<button>
côté.Utilisez la balise <button> au lieu de <input type = "button" ..> . C'est la pratique conseillée dans le bootstrap 3.
http://getbootstrap.com/css/#buttons-tags
la source
button
est beaucoup plus explicite, et vient avec desaria
fonctionnalités d'accessibilité, et est beaucoup plus facile à styliser. Il est également avant-gardiste, car il s'agit de HTML5.Bien que les deux éléments fournissent fonctionnellement le même résultat *, je vous recommande fortement d'utiliser
<button>
:input
suggère que le contrôle est modifiable ou peut être modifié par l'utilisateur;button
est beaucoup plus explicite quant à l'objectif qu'il sertinput[type="submit"]
ne s'affichent pas correctement dans certains casPOST
/GET
au serveur* À l'exception de qui par défaut n'a aucun comportement spécifié.
<button type="button">
En résumé, je déconseille fortement l'utilisation de
<input type="submit" />
.la source
<input type='submit' />
ne prend pas en charge HTML à l'intérieur, car il s'agit d'une seule balise à fermeture automatique.<button>
, D'autre part, prend en charge HTML, images, etc. à l' intérieur , car il est une paire de tag:<button><img src='myimage.gif' /></button>
.<button>
est également plus flexible en ce qui concerne le style CSS.L'inconvénient
<button>
est qu'il n'est pas entièrement pris en charge par les anciens navigateurs. IE6 / 7, par exemple, ne l'affiche pas correctement.Sauf si vous avez une raison précise, il est probablement préférable de s'y tenir
<input type='submit' />
.la source
<input type="submit" value="Log In" />
<button>
au profit de quelque chose de nouveau. Cela signifie-t-il que nous ne devrions pas du tout mentionner une balise spécifique dans les réponses, car cela pourrait changer à un moment donné dans le futur? Je préférerais laisser cela au lecteur pour déterminer comment les réponses s'appliquent à sa situation. Tant que l'information est précieuse pour le lecteur, je ne vois pas le problème de l'inclure.Je me rends compte que c'est une vieille question mais je l'ai trouvée sur mozilla.org et je pense qu'elle s'applique.
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form#And_a_<button>_to_finish
la source
<button type="button">
pour faire avancer un curseur / carrousel vers la diapositive suivante.<button>
est plus récent que<input type="submit">
, est plus sémantique, facile à styliser et prend en charge le HTML à l'intérieur.la source
Bien que les autres réponses soient excellentes et répondent à la question, il y a une chose à considérer lors de l'utilisation de
input type="submit"
etbutton
. Avec un,input type="submit"
vous ne pouvez pas utiliser un pseudo-élément CSS sur l'entrée mais vous pouvez le faire pour un bouton!C'est l'une des raisons d'utiliser un
button
élément sur une entrée pour le style.la source
Je ne sais pas s'il s'agit d'un bogue ou d'une fonctionnalité, mais il y a une différence très importante (dans certains cas au moins) que j'ai trouvée:
<input type="submit">
crée une paire de valeurs clés dans votre demande et<button type="submit">
ne le fait pas. Testé dans Chrome et Safari.Donc, lorsque vous avez plusieurs boutons d'envoi dans votre formulaire et que vous voulez savoir sur lequel vous avez cliqué - ne l'utilisez pas
button
, utilisezinput type="submit"
plutôt.la source
Si vous parlez
<input type=button>
, il ne soumettra pas automatiquement le formulairesi vous parlez de la
<button>
balise, c'est plus récent et ne se soumet pas automatiquement dans tous les navigateurs.En fin de compte, si vous souhaitez que le formulaire soit soumis au clic dans tous les navigateurs, utilisez
<input type="submit">
la source
<button type="submit">
pour soumettre automatiquement des formulaires.