我尝试在Rails中创建一个表单,其中包含一个带有三个选项的下拉菜单:"foo"、"bar"和"baz"。如果用户选择了其中一个选项,我希望根据所选选项显示不同的div。
下面是我的代码:
<% options = [['Foo', 'foo'], ['Bar', 'bar'], ['Baz', 'baz']] %>
<%= form.label :type %>
<%= form.select :type, options_for_select(options, @selected_type), name: 'type' %>
<% if @selected_type == 'foo' %>
<div>
<%= form.hidden_field :type, value:'foo' %>
</div>
<% elsif @selected_type == 'bar' %>
<div>
<%= form.hidden_field :type, value:'bar' %>
</div>
<% elsif @selected_type == 'baz' %>
<div>
<%= form.hidden_field :type, value:'baz' %>
</div>
<% end %>
这是在我的控制器:
@vendor_item = VendorItem.new
@selected_type = params[:type]
puts "Selected type: #{@selected_type}"
我已经使用select
元素实现了这个功能,但是表单没有按预期工作,当我从下拉菜单中选择一个选项时,表单没有被提交,div也没有显示。
1条答案
按热度按时间bvk5enib1#
用例1:如果表单应在服务器端提交,则下拉列表更改后:
Javascript:
用例2:如果您只需要在客户端显示/隐藏DIV,则在下拉菜单更改后:
Javascript:
请注意,
div
上的option-container
和选项(foo
、bar
、baz
)类以及控制器代码在两种情况下将保持不变: