Luc*_*Luc 5 forms ruby-on-rails
我正在使用rails应用程序,但无法找到如何处理依赖的下拉列表.我有3个型号: - 有几个组的类别 - 有几个成员的组 - 成员
选择类别后,我希望此类别中的组填充第二个下拉列表(组和成员之间的相同内容).
我有以下表格(显然这不符合我喜欢的方式,因为我采取了特定型号的所有项目)...
<div class="field">
<%= f.collection_select(:category, Category.find(:all), :id, :name, {:include_blank => 'Category'}) %>
</div>
<div class="field">
<%= f.collection_select(:group, Group.find(:all), :id, :name, {:include_blank => 'Group'}) %>
</div>
<div class="field">
<%= f.collection_select(:member, Member.find(:all), :id, :name, {:include_blank => 'Member'}) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
Run Code Online (Sandbox Code Playgroud)
什么是使这些领域依赖的最佳方法?我在网上找到了几个关于此问题的主题但却找不到答案.
最好的方法是 AJAX 调用。在开始时只需填充类别下拉列表。并在类别更改时进行 ajax 调用并填充组。对组下拉更改中的成员执行相同的操作。
尝试这样的事情:
$("#category']").click(function(){
var url = '/get_drop_down_options?category_id=' + $(this).val()
$("#group").removeOption(/./)
$.get(url, function(data) {
$('#group').addOption(data, false);
});
});
Run Code Online (Sandbox Code Playgroud)
在你的控制器中:
def get_drop_down_options
val = params[:category_id]
#Use val to find records
options = YourModel.collect{|x| "'#{x.id}' : '#{x.label}'"}
render :text => "{#{options.join(",")}}"
end
Run Code Online (Sandbox Code Playgroud)
现在你不需要部分。
| 归档时间: |
|
| 查看次数: |
6356 次 |
| 最近记录: |