2009-12-02 17 views
1

Je suis récemment passé à jQuery en utilisant jRails pour une application. 99% de tous mes RJS précédents semblent fonctionner parfaitement, le seul sauf le: loading => callback lors de l'utilisation de remote_form_tag.jrails loading remote_form_tag rails

<% form_remote_tag :url => '/hostels/update_currency', :loading => visual_effect(:appear, :load_currency), :html => { :id => 'currency' } do %> 

J'ai un #load_currency caché DIV qui a fonctionné parfaitement avant d'utiliser les aides prototypes fournis

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001648

Mais en utilisant la nouvelle solution jRails, cette fonctionnalité ne semble pas fonctionner?

J'ai essayé avec RJS et jQuery directement:

:loading => visual_effect(:appear, :load_currency) 
:loading => "$('#load_currency').show();" 

qui produit ce dans le code HTML:

onsubmit="jQuery.ajax({beforeSend:function(request){jQuery(&quot;#load_currency&quot;).fadeIn();}, data:jQuery.param(jQuery(this).serializeArray()) + '&amp;authenticity_token=' + encodeURIComponent('O7Y7wzFoPPxGSTxIb2bQ3zshrUP+h1OGAUdtyzdQz0A='), dataType:'script', type:'post', url:'/hostels/update_currency'}); return false;"> 

J'ai essayé aussi les callbacks: avant et: après au lieu de: chargement et a également obtenu rien ... des idées? Ou cette fonction ne fonctionne-t-elle pas avec jRails?

Merci

Répondre

1

je trouve plus propre pour éviter la ligne javascript et écrire vieux jquery plaine. Vous pourriez essayer quelque chose comme ceci:

# view.html.erb 
<% form_tag '/hostels/update_currency', :html => { :id => 'currency' } do %> 
... 


# some_included_javascript_file.js 
$(function() { 
    $('#currency').submit(function() { 
     $('#load_currency').show(); // or do an effect 
     $.post(this.action, jQuery.param(jQuery(this).serializeArray()), function() { 
      $('#load_currency').hide(); // or do an effect 
     }, 'script'); 
    }); 
});