如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails

Posted

技术标签:

【中文标题】如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails【英文标题】:How to control column headings in the NEW/EDIT views based on the CATEGORY selected from a drop-down list. Ruby on Rails w/ MYSQL 【发布时间】:2011-07-30 22:39:38 【问题描述】:

两种型号:

category has_many: components
component belongs_to: category

CATEGORY 表定义了不同组件类型的变量名称:

TYPE, VAR1, VAR2, VAR3, ...

Insulator, Voltage, Height, Material, ...

Current Transformer, Voltage, Ratio, Indoor, ...

在 COMPONENT 模型的 NEW/EDIT 视图中,用户将首先从下拉列表中划分 CATEGORY。根据选择的 CATEGORY,表单中的列标题和字段标签需要动态更新,以指示与所选 CATEGORY 关联的变量名称。

即如果用户选择 CATEGORY = Insulator THEN VAR1 ... VAR3 的字段标签是电压、高度、材料等。

我假设这将在典型脚手架的 _form.html.erb 中进行控制。我正在寻找推荐的技术。

提前感谢任何信息。

【问题讨论】:

【参考方案1】:

响应用户在选择标签中选择不同选项而更改表单可能最好由 javascript 完成。这允许在客户端执行,这将比返回服务器更快。

我建议将不同的表单字段放在页面加载时隐藏的 div 标签内。通过绑定到 select 标签上的 JavaScript onChange 事件,可以切换每个类别组合以显示在表单中。

这里是关于选择标签的更多信息:http://www.w3schools.com/jsref/event_onchange.asp

【讨论】:

谢谢本。我将阅读 event_onchange。你正朝着正确的方向前进。这是否需要将不同的类别/变量组合存储在 javascript 中?如果是这样,恐怕该页面将需要高度维护,因为每当创建新类别时我都必须更新内容。有没有办法在客户端缓存查找列表,以便仅在表更改时引用该表?再次感谢。拜伦

以上是关于如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails的主要内容,如果未能解决你的问题,请参考以下文章

根据第一个下拉选择填充 HTML/PHP 下拉列表

想从下拉列表中选择选项并根据所选选项更改按钮的标题...如何?

Vuejs 根据从下拉列表中选择的值显示其他输入字段

如何在颤振中实现未来的下拉列表并根据用户选择更新值

如何根据我在多个下拉列表中选择的内容创建过滤器?

iOS Swift如何根据下拉列表中的选择显示动态用户界面