2010-09-14 49 views

回答

1

这里是一个可行的解决方案我想:

在我观点文件,我用:onSubmit表现出微调:

<% form_for("", @search, 
      :url => {:action => "search"}, 
      :html => {:id => "search_form", 
         :onSubmit => "$('search-loader').show();"}, 
      :remote => true) do |f| %> 

在我搜索行动,我增加了一个行隐藏它:

render :update do |page| 
    ... 
    page << "$('search-loader').hide();" 
end 

它的作品很棒..!

0

好,我使用jQuery,和我做了以下尝试不显眼:

</head>标签前面添加这个,:

= yield :document_ready 

然后在你的application_helper。 rb:

def document_ready(content) 
    html = %{ $(function(){#{content}})} 
    content_for(:document_ready){ javascript_tag(html) } 
    end 

这允许您在加载文档后加载并运行JavaScript。

在包含表单中添加视图的顶部:

- document_ready("hide_button_show_spinner('your_button_id')") 

在application.js中

function hide_button_show_spinner(element_id) { 
    $('#'+element_id).bind('click', function() { 
    $('#'+element_id).after("<img src='/path/to/your/spinner.gif' class='ajax_loader' id='"+element_id+"_ajax_loader' style='display: none'/>") 
    $('#'+element_id).hide(); 
    $('#'+element_id+'_ajax_loader').show(); 
    }); 
} 

这将隐藏按钮,显示微调一旦按钮被点击。你可能需要适应你的具体情况。 然后,您可以显示按钮并在JavaScript响应中隐藏微调器(您从ajax请求所调用的动作呈现的.js.erb文件)。