我有一组3个collection_selects,我想过滤下一个选择。在第一个选择框中选择一个项目时,它应该限制第二个和第三个选择框的可能值。
类似的数据模型如下......
表格和字段
因此,在填写添加新锁的表单时,会有针对品牌,主人和常规的选择框。选择品牌后,它会将主键和常规键限制为仅属于所选品牌的键。
我发现了一些如何做到这一点的部分例子,但没有一个是完整的。我很欣赏如何实现这一点的完整示例。
答案 0 :(得分:3)
您需要做的就是使用事件监听器绑定选择,该事件监听器触发填充包含后续选择的其他2个部分的ajax请求。即。
<%= form_for @thing, :remote => true do, :update => 'second_form' |f| %>
<%= hidden_field_tag 'form_partial', :value => 'form_2' %>
<%= select_tag :some_param, [[a,a],[b,b],[c,c]] :class => 'submittable' %>
<%= f.label :checked %>
<%= thing.name %>
<% end %>
<div id='second_form'>
</div>
<div id='third_form'>
</div>
class ThingController < ApplicationController
def update
checkboxes = some_logic_to_select_checkboxes from params[:some_params]
render :partial => params[:form_partial], :locals => {:select_menu => select_menu}
end
end
$('.submittable').live('change', function() {
$(this).parents('form:first').submit();
return false;
});
您的表单部分应包含填充了您要启用的任何选项的表单。只要重复表格,思考是多余的。