我在Rails 3中使用了远程表单。它工作正常,但我想在ajax请求期间显示/隐藏微调器。什么是替代:之前和之后的轨道2.3。*在轨道3?
在Rails 2.3 *我们使用:&前:在偏远的形式后,显示/隐藏微调
我应该在Rails 3中做,因为Rails 3中的远程形式不包含这样的选项。
我在Rails 3中使用了远程表单。它工作正常,但我想在ajax请求期间显示/隐藏微调器。什么是替代:之前和之后的轨道2.3。*在轨道3?
在Rails 2.3 *我们使用:&前:在偏远的形式后,显示/隐藏微调
我应该在Rails 3中做,因为Rails 3中的远程形式不包含这样的选项。
这里是一个可行的解决方案我想:
在我观点文件,我用: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
它的作品很棒..!
好,我使用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文件)。