我有一个表单,有两个按钮
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
我也使用jQuery UI的按钮,简单地像这样
$('button').button();
但是,第一个按钮也提交了表单。我认为如果它没有type="submit",它就不会。
显然我可以这么做
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
但是是否有一种方法可以在没有JavaScript干预的情况下阻止后退按钮提交表单呢?
老实说,我只使用了一个按钮,这样我就可以用jQuery UI来设计它。我尝试在链接上调用button(),它没有像预期的那样工作(看起来很难看!)。
说实话,我喜欢其他答案。简单,不需要进入JS。但是我注意到你在问jQuery。因此,为了完整起见,在jQuery中,如果您使用.click()处理程序返回false,它将否定小部件的默认操作。
请看这里的例子(还有更多的好东西)。这里还有文档。
简单地说,在你的示例代码中,这样做:
<script type="text/javascript">
$('button[type!=submit]').click(function(){
// code to cancel changes
return false;
});
</script>
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
作为一个额外的好处,有了这个,你可以摆脱锚标记,只使用按钮。
说实话,我喜欢其他答案。简单,不需要进入JS。但是我注意到你在问jQuery。因此,为了完整起见,在jQuery中,如果您使用.click()处理程序返回false,它将否定小部件的默认操作。
请看这里的例子(还有更多的好东西)。这里还有文档。
简单地说,在你的示例代码中,这样做:
<script type="text/javascript">
$('button[type!=submit]').click(function(){
// code to cancel changes
return false;
});
</script>
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
作为一个额外的好处,有了这个,你可以摆脱锚标记,只使用按钮。