data-remote true定义回调

时间:2012-01-21 17:54:06

标签: ruby-on-rails ajax forms rest

我有一个表单,我想使用data-remote=true选项提交。但我想让我的创建操作返回json,然后由页面上已存在的javascript处理。我可以使用form_for标记设置内联回调吗?

类似的东西:

=form_for @foo,:remote => true, :success => "my_js_stuff" do |f|

2 个答案:

答案 0 :(得分:9)

我不确定在没有覆盖rails帮助器的情况下是否可行。但是你可以使用jquery ajax事件并绑定它们。例如:

$('form#sign-up-form').ajaxError(function(event, request, settings) {
 //do some stuff on error
})

$('form#sign-up-form').bind('ajax:success', function(evt, data, status, xhr){
//do some stuff on success
})

答案 1 :(得分:5)

您需要为foo控制器定义create.js.erb和/或update.js.erb。这将返回您将执行的javascript。

从那里,您可以执行页面上已存在的javascript。