内部窗体中的按钮触发http post但不应该

时间:2012-08-28 10:20:44

标签: ruby-on-rails button

我制作了一个html表单,其中包含一些不应发布表单的按钮。他们只应该做一些javascript动作。但是,当单击这些按钮时,它们会触发发布请求。按钮的html代码如下所示:

<button class="btn" id=some_id>
</button>

没有什么特别的,你可以看到。有没有办法阻止这些按钮发布表单?

我用过

$('.btn').bind('click', function() {
    some_js_code
});

将一些js功能绑定到按钮上 解决方案:

$('.btn').bind('click', function() {
    some_js_code
    return false;
});

3 个答案:

答案 0 :(得分:4)

您可以添加onClick处理程序并返回false以防止默认行为。例如:

<button class="btn" id=some_id onClick="alert('do stuff'); return false;">
</button>

尽管Anthony Grist指出,内联属性并不是一种很好的做事方式。

答案 1 :(得分:0)

是否应该有类似onclick="javascriptfunction()"的内容?

答案 2 :(得分:0)

根据W3Schools

  

在元素中,您可以放置​​内容,例如文本或图像。这是此元素与使用元素创建的按钮之间的区别。

因此,如果您真的希望将其视为没有帖子的虚拟按钮,您仍然需要添加type="button"

您提到您正在使用JavaScript,因此您也可以设置

cancelBubble = true MSDN cancelBubble property

event.preventDefault() jQuery preventDefault