jQuery:使用Live()防止远程Rails表单提交

时间:2012-10-17 16:43:22

标签: jquery ruby-on-rails ajax forms

我在jQuery中有一个远程提交的表单:

<%= form_for @order, :remote => true do |f| %>

在客户端,我绑定到表单提交事件(在咖啡脚本中):

 $('#new_order').live 'submit', (e) ->

我希望阻止rails远程表单提交,但我似乎无法让它工作,我已经尝试过:

 e.preventDefault()
 e.stopPropagation()
 return false

这些似乎都不起作用。我是Rails的新手,所以我想知道我是否遗漏了一些关于远程提交处理程序的东西?

编辑:

我发现如果我使用bind代替live

,它就有效

1 个答案:

答案 0 :(得分:1)

似乎问题是live无法可靠地阻止文档中早先绑定的默认操作:

http://api.jquery.com/live/

  

在事件处理程序中调用event.stopPropagation()无效   阻止文件中较低的事件处理程序;事件   已经传播到文件。&#34;

使用:

 $('#new_order').on 'submit', (e) ->

诀窍!