2
我正在基於分類的網站上工作,並且我希望使窗體適應通過javascript輸入的分類類型。Rails渲染部分取決於集合的值選擇
例如我有很多類型,即。汽車& &手機
我有三個下拉菜單,使用咖啡腳本根據以前的輸入進行過濾(代碼將在下面包含)。
我希望表單根據最後一個框中的選定值加載一個部分。
看看下面的例子。
第一個下拉菜單爲類別,然後是子類別,然後是子子類別。
當選擇了最後一個盒子「遊戲」爲它加載的局部「_games.html.erb」
的咖啡腳本我有隱藏和過濾的下拉菜單是因爲我想要的如下所示
jQuery ->
$('#classified_tag_list').autocomplete
source: $('#classified_tag_list').data('autocomplete-source')
$('#classified_sub_category_id').hide()
$('#classified_sub_sub_category_id').hide()
sub_category = $('#classified_sub_category_id').html()
$('#classified_category_id').change ->
category = $('#classified_category_id :selected').text()
options = $(sub_category).filter("optgroup[label='#{category}']").html()
if (options)
$('#classified_sub_category_id').html(options)
$('#classified_sub_category_id').show()
$('#classified_sub_sub_category_id').empty()
else
if(not category == 'Please select a category')
$('#classified_sub_category_id').parent().hide()
$('#classified_sub_sub_category_id').parent().hide()
$('#classified_sub_category_id').empty()
$('#classified_sub_category_id').empty()
$('#classified_sub_sub_category_id').empty()
$('#classified_sub_sub_category_id').empty()
suburbs = $('#classified_sub_sub_category_id').html()
$('#classified_sub_category_id').change ->
city = $('#classified_sub_category_id :selected').text()
options = $(suburbs).filter("optgroup[label='#{city}']").html()
if (options)
$('#classified_sub_sub_category_id').html(options)
$('#classified_sub_sub_category_id').show()
else
$('#classified_sub_sub_category_id').empty()
$('#classified_sub_sub_category_id').hide()
那麼,如何根據最後一個下拉菜單的值使用JavaScript加載部分?
[編輯]
我看着Dynamic Partial Based on Select Box - Rails 2.3.5
,這是我
_form.html.erb
<script type="text/javascript">
$(document).ready(function() {
$('#classified_sub_sub_category_id').change(function() {
$.ajax({ url: '/classifieds/form_partial/'+ this.value });
});
});
</script>
routes.rb
resources :classifieds do
match "/form_partial/:id" => "classifieds#form_partial"
end
classifieds_controller.rb
def form_partial
@category = Category.find(params[:id])
end
form_partial.js.erb
<% if @category == 1 %>
$('#classified_sub_sub_category_id').after('<div id="product_partial"><%= escape_javascript render('/forms/cars') %></div>');
<% else %>
$('#classified_sub_sub_category_id').after('<div id="product_partial"><%= escape_javascript render('/forms/cars') %></div>');
<% end %>
但是,給出了錯誤
undefined method `render' for #<#<Class:0xa0805fc>:0xb574788>
(in /home/james/hustle/app/assets/javascripts/form_partial.js.erb)
以及最新的問題? – Lichtamberg
詹姆斯,看看這可以幫助你http://stackoverflow.com/questions/14592642/dynamic-partial-based-on-select-box-rails-2-3-5 –
嗨@LuísRamalho我跟着教程,但得到一些錯誤,如發佈在更新後的問題 – JamesWatling