如何根据 Ruby on Rails 中的表单选择创建文本框警报/悬停弹出文本?
Posted
技术标签:
【中文标题】如何根据 Ruby on Rails 中的表单选择创建文本框警报/悬停弹出文本?【英文标题】:How do I create a text box alert/ hover pop up text depending on form selection in Ruby on Rails? 【发布时间】:2021-09-24 02:59:17 【问题描述】:到目前为止,我在form.html.erb
中有此代码,但它并没有按照我想要的方式工作。它只显示占位符值。
我想要做的是:当用户选择 A 时,我希望选择 A 旁边的文本框显示一些文本以提供有关该选择的更多详细信息。
<%= form.label :title %><br>
<%= form.select :title, ['A', 'B','C','D' ]%>
<%= form.text_field : Content, class:"form-control", placeholder:'text here', style:"#'display: This is A' if form.object.title == 'A'" %>
【问题讨论】:
你遇到了什么错误? 您好@Eyeslandic,感谢您编辑内容。我还对其进行了编辑以澄清正在发生的事情。它基本上不起作用,只是显示占位符。我想添加多个 if 语句,例如,如果用户选择 B,则会显示文本框中的其他一些内容。我希望这已经足够清楚了! 【参考方案1】:Rails Form Helpers 不会代表你做所有事情,如果你想在表单周围做一些魔法,你必须放一些 javascript。
在您的情况下,如果您只想显示一个简单的警报以显示所选选项信息,您可以这样做:
<% ruby_var = "this is ruby variable"; options =
"A": "I like ice cream and I like books",
"B": "I like pizza and I do not like books",
"C": ruby_var
.to_json
%>
<%= form.select(:title, ['A', 'B','C','D' ], , :onChange =>"javascript: alert(#options[this.value]);")%>
如果你想要更多,写你自己的js来操作dom元素
【讨论】:
谢谢!这行得通!但是,我想知道如何为警报使用一些嵌套的 if 语句。 For example, when A is selected -> "here are the details for choice A", and when B is selected -> "here are the details for choice B".我似乎找不到此输出代码的解决方法。 @user16453313 这个代码This is $this.value
已经做了,当你选择A 时,$this.value
是A。
对不起,我无法很好地解释它。因此,当我说“这里是详细信息”时,我的意思是每个选择都有不同的内容。喜欢: A=> 我喜欢冰淇淋,我喜欢书 B => 我喜欢披萨,但我不喜欢书。详细信息不必包括 $this.value。我希望它很清楚!
@user16453313 我更新了我的答案,option
这里可能是您从 db 或控制器逻辑上获得的数据,它是 ruby。以上是关于如何根据 Ruby on Rails 中的表单选择创建文本框警报/悬停弹出文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据从下拉列表中选择的 CATEGORY 来控制 NEW/EDIT 视图中的列标题。带有 MYSQL 的 Ruby on Rails
Ruby on Rails 表单中的 select 和 onChange