2012-01-21 11 views
7

Ho un modulo che desidero inviare con l'opzione data-remote=true. Ma voglio che la mia azione di creazione restituisca json, poi quella gestita da javascript che esiste già sulla pagina. Posso impostare una richiamata in linea con il tag form_for?data-remote true che definisce una richiamata

Qualcosa di simile a questo:

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

risposta

9

Non sono sicuro che sia possibile senza l'aiuto di una guida di emergenza. Ma puoi usare gli eventi jquery ajax e legarli a loro. Ad esempio:

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

ti consigliamo di definire un create.js.erb e/o update.js.erb per il controller foo. Ciò restituirà javascript che verrà eseguito.

Da lì, è possibile eseguire javascript che già esiste sulla pagina.

+0

Buon pensiero. +1 Questo aiuterà in caso di successo. Non aiuterà in caso di errore. – Hendrik

Problemi correlati