<botón> frente a <tipo de entrada="botón" />. ¿Cuál usar?

Resuelto Aron Rotteveel asked hace 15 años • 17 respuestas

Al mirar la mayoría de los sitios (incluido SO), la mayoría usa:

<input type="button" />

en lugar de:

<button></button>
  • ¿Cuáles son las principales diferencias entre los dos, si las hay?
  • ¿Existen razones válidas para utilizar uno en lugar del otro?
  • ¿Existen razones válidas para utilizar combinarlos?
  • ¿El uso <button>conlleva problemas de compatibilidad, ya que no se utiliza mucho?
Aron Rotteveel avatar Jan 22 '09 20:01 Aron Rotteveel
Aceptado
  • Aquí hay una página que describe las diferencias (básicamente puedes poner html en un <button></button>)
  • Y otra página que describe por qué la gente evita <button></button>(Pista: IE6)

Otro problema de IE al usar <button />:

Y mientras hablamos de IE, tiene un par de errores relacionados con el ancho de los botones. Agregará misteriosamente relleno adicional cuando intentes agregar estilos, lo que significa que tendrás que agregar un pequeño truco para tener todo bajo control.

Tamas Czinege avatar Jan 22 '2009 13:01 Tamas Czinege

Solo como nota al margen, <button>se enviará implícitamente, lo que puede causar problemas si desea utilizar un botón en un formulario sin enviarlo. Por tanto, otra razón para utilizar <input type="button">(o <button type="button">)

Editar - más detalles

Sin un tipo, buttonrecibe implícitamente el tipo desubmit . No importa cuántos botones de envío o entradas haya en el formulario, cualquiera de ellos que esté explícita o implícitamente escrito como enviar, al hacer clic, enviará el formulario.

Hay 3 tipos admitidos para un botón

submit ||  "submits the form when clicked (default)"
reset  ||  "resets the fields in the form when clicked"
button ||  "clickable, but without any event handler until one is assigned"
Travis J avatar Apr 09 '2012 20:04 Travis J