【问题标题】:Rails: disable input tag upon selection from a dropdown menuRails:从下拉菜单中选择时禁用输入标签
【发布时间】:2018-07-13 19:02:28
【问题描述】:

场景/上下文

我有一个下拉菜单,下面有两个输入元素。

从下拉菜单中,是公司名称(值设置为各自的公司 ID),以及另一个提示添加新公司

如果从下拉列表中选择了添加新公司选项,则用户将填写 2 个输入字段元素(即公司名称和公司电子邮件)。

否则,如果从下拉列表中选择了可用的公司, 然后是 2 个输入字段(公司名称和电子邮件将被禁用)。

我的问题

如果我希望在不刷新页面的情况下发生事情,这是否可以在没有 AJAX 调用的情况下完成? 谁能推荐一些其他的替代品??

非常感谢!

【问题讨论】:

    标签: ruby ruby-on-rails-4 drop-down-menu ruby-on-rails-5


    【解决方案1】:

    这绝对是可能的,尽管您需要使用一些 JavaScript 来实现它并在初始页面加载时向 DOM 加载更多数据。

    对于company 选择下拉列表中的每个option,为nameemail 添加一个数据属性。

    然后,观察 JavaScript 中 change 事件的下拉列表。每当触发该事件时,如果为所选选项定义了 data-company-namedata-company-email 属性,则禁用输入字段并使用这些值填充它们。如果未为该选项定义这些数据属性(可能仅针对您的“添加新公司”选项),则清除输入字段中的值并启用它们。

    【讨论】:

    • 感谢@s_dolan 的回复!我最终得到了解决,没有 AJAX 调用也没有事件监听器。我只是使用 JS 来获取适当的 DOM 元素(基于元素 ID),然后从那里继续前进。保证有一个更优雅的解决方案,但现在,这会做。 :)
    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 2011-11-02
    • 2013-06-13
    • 2019-01-19
    • 1970-01-01
    • 2020-10-18
    • 2012-07-29
    • 2012-10-20
    相关资源
    最近更新 更多