首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:基于先前的选择填充复选框

Rails:基于先前的选择填充复选框
EN

Stack Overflow用户
提问于 2011-08-23 01:01:54
回答 1查看 1.3K关注 0票数 1

我有一套3 collection_selects,我想过滤下一个选择。在第一个选择框中选择一个项目时,它应该限制第二个和第三个选择框的可能值。

类似的数据模型如下..。

表和字段

  • lock_id
  • brand_id
  • master_id
  • regular_id

  • brand_id

  • 锁具品牌

  • master_id
  • brand_id

  • 主键

  • regular_id
  • brand_id

  • 正则密钥

因此,在填写用于添加新锁的表单时,将有用于品牌、主人和常规的复选框。在选择一个品牌时,它会将主键和常规键限制在只属于所选品牌的主键和常规键上。

我已经找到了几个如何做到这一点的部分例子,但是没有一个是完整的。我希望有一个完整的例子来说明如何实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2011-08-23 02:05:46

您所需要做的就是将选择绑定到一个事件侦听器,该侦听器发出一个ajax请求,填充包含后续选择的其他两个部分。即

代码语言:javascript
复制
<%= 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;
});

您的表单部分应该包含使用您想要启用的任何选择填充的窗体。思想是多余的,只需重复形式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7155268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档