¿Puedo hacer que un <botón> no envíe un formulario?

Resuelto alex asked hace 14 años • 8 respuestas

Tengo un formulario con 2 botones.

<a href="index.html"><button>Cancel changes</button></a>

<button type="submit">Submit</button>

También uso el botón de jQuery UI en ellos, simplemente así

$('button').button();

Sin embargo, el primer botón también envía el formulario. Habría pensado que si no tuviera el type="submit", no lo tendría.

Obviamente podría hacer esto

$('button[type!=submit]').click(function(event) { event.stopPropagation(); });

Pero, ¿hay alguna manera de evitar que el botón Atrás envíe el formulario sin la intervención de JavaScript?

Para ser honesto, usé un botón solo para poder diseñarlo con jQuery UI. Intenté llamar button()al enlace y no funcionó como se esperaba (¡se veía bastante feo!).

alex avatar Jul 23 '10 09:07 alex
Aceptado

El valor predeterminado para el typeatributo de buttonlos elementos es "enviar". Configúrelo para type="button"producir un botón que no envíe el formulario.

<button type="button">Submit</button>

En palabras del estándar HTML : "No hace nada".

Josh Lee avatar Jul 23 '2010 02:07 Josh Lee

El buttonelemento tiene un tipo predeterminado de submit.

Puedes hacer que no haga nada estableciendo un tipo de button:

<button type="button">Cancel changes</button>
s4y avatar Jul 23 '2010 02:07 s4y