Ruby-on-Rails:根据先前的选择填充选择框
我有一组3个collection_selects,我想过滤下一个选择。 在第一个选择框中选择项目时,它应该限制第二个和第三个选择框的可能值。
类似的数据模型如下……
表和字段
- 锁
- lock_id
- brand_id
- master_id
- regular_id
- 锁定品牌
- brand_id
- 主密钥
- master_id
- brand_id
- 常规密钥
- regular_id
- brand_id
因此,在填写添加新锁的表单时,会有针对品牌,主人和常规的选择框。 选择品牌后,它会将主键和常规键限制为仅选定品牌的键。
我发现了一些如何做到这一点的部分例子,但没有一个是完整的。 我很欣赏如何实现这一点的完整示例。
您需要做的就是将选择与事件监听器绑定,该事件监听器触发填充包含后续选择的其他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 %> 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; });
您的表单部分应包含填充了您要启用的任何选项的表单。 只重复表格,思想是多余的。