我在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文件)。