我不想在提交表单时从下拉列表和选中的单选按钮中休息所选值。 在两个单选按钮的onclick上我必须提交表单,提交后它似乎重置所选值。 这是使用
的代码 <%= form_tag(:action =>"show", :method => "post") do %>
<%= @name %>.
<strong>Select device: </strong> <%= collection_select(:device, :id, @devices, :id, :name, options ={:selected => params[:name],:prompt => "-Select a device"}) %>
<br></br>
<strong>Chose: </strong>
<%= radio_button_tag :name,:time,@name.eql?('time'),:onclick => "this.parentNode.submit();"%>Time
<%= radio_button_tag :name,:graph,,@name.eql?('graph') :onclick => "this.parentNode.submit();" %>Graph
<%end%>
在页面刷新中选择值后,显示所选值。但单击单选按钮后不显示所选值。
答案 0 :(得分:1)
将collection_select代码更改为
collection_select(:device, :id, @devices, :id, :name, { selected: params.fetch(:device, {})[:id].to_i, :prompt => "-Select a device" }) %>
更新:用于单选按钮。
我不确定你是如何设置@name
但是因为你用它来检查单选按钮的状态,你应该在控制器中这样做
@name = params[:name]
或者如果您不想这样做,可以执行以下操作
<%= params[:name] %>.
<%= radio_button_tag :name, :time, params[:name] == 'time', onclick: 'this.parentNode.submit();' %>Time
<%= radio_button_tag :name, :graph, params[:name] == 'graph'), onclick: 'this.parentNode.submit();' %>Graph