data-remote true defining a callback

2019-01-15 02:19发布

问题:

I have a form that I would like to submit with the data-remote=true option. But I want to have my create action return json, then have that handled by javascript that already exists on the page. Can I set a callback inline with the form_for tag?

Something similar to this:

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

回答1:

I'm not sure if it will be possible without overriding rails form helper. But you can use jquery ajax events and bind to them. For example:

$('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
})


回答2:

You'll want to define a create.js.erb and/or update.js.erb for the foo controller. That will return javascript that you'll execute.

From there, you can execute javascript that already exists on the page.