input type="submit"
y la button
etiqueta son intercambiables? o si hay alguna diferencia, ¿cuándo usar input type="submit"
y cuándo button
?
Y si no hay diferencia, ¿por qué tenemos 2 etiquetas para el mismo propósito?
html
accessibility
w3c
web-standards
semantic-markup
Jitendra Vyas
fuente
fuente
button
y elvalue
atributo en alguna versión de IE,input
solo enviará lo que esperaba, alguna versión de IE no funciona bien conbutton
s.input type="button"
vsbutton type=button
: stackoverflow.com/questions/469059/…Respuestas:
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
¡Entonces, para la funcionalidad, solo son intercambiables!
(No lo olvide,
type="submit"
es el valor predeterminado conbutton
, ¡así que déjelo apagado!)fuente
type="submit"
botón, ya que el valor predeterminadotype
essubmit
.type
valor predeterminado erabutton
. Prefiero explicitar cada atributo para evitar cualquier inconsistencia del navegador.El
<input type="button">
es solo un botón y no hará nada por sí mismo. El<input type="submit">
, cuando dentro de un elemento de formulario, se envía el formulario cuando se hace clic.Otro botón 'especial' útil es el
<input type="reset">
que borrará el formulario.fuente
<input>
y<button>
etiquetas. Proporcionó información útil sobre<input>
en su respuesta, pero le falta el<button>
lado.Use la etiqueta <button> en lugar de <input type = "button" ..> . Es la práctica recomendada en bootstrap 3.
http://getbootstrap.com/css/#buttons-tags
fuente
button
es mucho más explícito y viene conaria
características de accesibilidad, y es mucho más fácil de diseñar. También es progresista, ya que es HTML5.Aunque ambos elementos ofrecen funcionalmente el mismo resultado *, le recomiendo que use
<button>
:input
sugiere que el control sea editable o que el usuario pueda editarlo;button
es mucho más explícito en términos del propósito al que sirveinput[type="submit"]
no se muestran correctamente en algunos casosPOST
/GET
al servidor* Con la excepción de que por defecto no tiene un comportamiento especificado.
<button type="button">
En resumen, desaconsejo el uso de
<input type="submit" />
.fuente
<input type='submit' />
no admite HTML dentro de él, ya que es una sola etiqueta de cierre automático.<button>
, Por el contrario, soporta HTML, imágenes, etc. dentro porque es un par de etiquetas:<button><img src='myimage.gif' /></button>
.<button>
También es más flexible cuando se trata de estilo CSS.La desventaja
<button>
es que no es totalmente compatible con navegadores antiguos. IE6 / 7, por ejemplo, no lo muestra correctamente.A menos que tenga alguna razón específica, probablemente sea mejor atenerse
<input type='submit' />
.fuente
<input type="submit" value="Log In" />
<button>
a favor de algo nuevo. ¿Eso significa que no deberíamos mencionar una etiqueta específica en las respuestas, ya que podría cambiar en algún momento en el futuro? Preferiría dejarlo como un ejercicio para el lector para determinar cómo se aplican las respuestas a su situación. Mientras la información sea valiosa para el lector, no veo el problema en incluirla.Me doy cuenta de que esta es una vieja pregunta, pero encontré esto en mozilla.org y creo que se aplica.
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/My_first_HTML_form#And_a_<button>_to_finish
fuente
<button type="button">
para avanzar un control deslizante / carrusel a la siguiente diapositiva.<button>
es más nuevo que<input type="submit">
, es más semántico, fácil de estilizar y admite HTML dentro de él.fuente
Si bien las otras respuestas son geniales y responden la pregunta, hay una cosa a tener en cuenta al usar
input type="submit"
ybutton
. Con uninput type="submit"
no se puede usar un pseudo elemento CSS en la entrada, ¡pero se puede usar un botón!Esta es una razón para usar un
button
elemento sobre una entrada cuando se trata de estilo.fuente
No sé si esto es un error o una característica, pero hay una diferencia muy importante (al menos en algunos casos) que encontré:
<input type="submit">
crea un par de valores clave en su solicitud y<button type="submit">
no lo hace. Probado en Chrome y Safari.Entonces, cuando tiene varios botones de envío en su formulario y desea saber en cuál se hizo clic, no lo use
button
, en suinput type="submit"
lugar , úselo.fuente
Si está hablando
<input type=button>
, no enviará automáticamente el formularioSi está hablando de la
<button>
etiqueta, es más nueva y no se envía automáticamente en todos los navegadores.En pocas palabras, si desea que el formulario se envíe al hacer clic en todos los navegadores, use
<input type="submit">
fuente
<button type="submit">
para enviar formularios automáticamente.