2009-12-02 66 views
1

我最近使用jRails切換到jQuery的應用程序。我以前的RJS中99%似乎完美工作,唯一的例外是使用remote_form_tag時的loading =>回調。jrails loading remote_form_tag rails

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

我有使用所提供的原型傭工

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

但使用新jRails替代之前的工作完美隱藏DIV #load_currency,這個功能似乎並沒有工作?

我嘗試使用RJS和jQuery直接:

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

其產品這在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;"> 

我也試過回調:前和:不是後:加載和也得到了沒什麼...有什麼想法?或者這個功能是否不適用於jRails?

謝謝

回答

1

我覺得它更乾淨,以避免內聯JavaScript和寫入普通的舊jQuery。你可以嘗試這樣的事情:

# 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'); 
    }); 
});