1

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

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

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

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

我想阻止rails远程表单提交,但我似乎无法让它工作,我试过了:

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

这些似乎都不起作用。我对 Rails 还很陌生,所以我想知道我是否遗漏了有关远程提交处理程序的某些内容?

编辑:

我发现如果我使用bind而不是live

4

1 回答 1

1

似乎问题在于 live 无法可靠地阻止文档中前面绑定的默认操作:

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

在事件处理程序中调用 event.stopPropagation() 无法停止附加在文档下方的事件处理程序;该事件已传播到文档。”

使用:

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

成功了!

于 2012-10-17T17:01:16.320 回答