我正在开发一个基于分类的网站,我想让表单适应 javascript 输入的分类类型。
例如,我有很多类型,即。汽车 && 手机
我有三个下拉菜单,它们使用咖啡脚本根据先前的输入进行过滤(代码将包含在下面)。
我希望表单根据最后一个框中的选定值加载部分内容。
看看下面的例子。
第一个下拉列表是类别,然后是子类别,然后是子子类别。
我希望在选择最后一个框“游戏”时加载部分“_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 加载部分?
[编辑]
这就是我所拥有的
_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)