Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

data-remote true defining a callback

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|
like image 468
Lee Quarella Avatar asked Jan 21 '12 17:01

Lee Quarella


2 Answers

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
})
like image 83
Andrey Kryachkov Avatar answered Oct 08 '22 08:10

Andrey Kryachkov


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.

like image 43
Jesse Wolgamott Avatar answered Oct 08 '22 08:10

Jesse Wolgamott