I've got a form, with 2 buttons
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
I use jQuery UI's button on them too, simply like this
$('button').button();
However, the first button also submits the form. I would have thought that if it didn't have the type="submit"
, it wouldn't.
Obviously I could do this
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
But is there a way I can stop that back button from submitting the form without JavaScript intervention?
To be honest, I used a button only so I could style it with jQuery UI. I tried calling button()
on the link and it didn't work as expected (looked quite ugly!).
Just use good old HTML:
Wrap it as the subject of a link, if you so desire:
Or if you decide you want javascript to provide some other functionality:
The default value for the
type
attribute ofbutton
elements is "submit".Honestly, I like the other answers. Easy and no need to get into JS. But I noticed that you were asking about jQuery. So for the sake of completeness, in jQuery if you return false with the .click() handler, it will negate the default action of the widget.
See here for an example (and more goodies, too). Here's the documentation, too.
in a nutshell, with your sample code, do this:
As an added benefit, with this, you can get rid of the anchor tag and just use the button.
Without setting the
type
attribute, you could also returnfalse
from yourOnClick
handler, and declare theonclick
attribute asonclick="return onBtnClick(event)"
.