【问题标题】:Get value of a hidden field tag Ruby on Rails获取隐藏字段标签 Ruby on Rails 的值
【发布时间】:2013-04-05 10:32:31
【问题描述】:

我迷路了,我不知道我做错了什么!我有 4 个单选按钮和一个隐藏字段(值 =“1”)。当您单击第二个单选按钮时,隐藏字段的值更改为 2,依此类推。这适用于 js 函数。

Different divs will be showed when a different radiobutton is selected.现在,当我试图获取控制器中隐藏字段的值时,它总是返回 nil。

代码如下:

视图:

(单选按钮、隐藏字段和一个 div)

<div>
    <%= form_tag patients_path do %>
        <%= radio_button_tag 'searchRBN', 'patient', true, :onchange => "checkRadioButton()" %>
        <%= label_tag :byPatient_patient, "Patient" %>
        <%= radio_button_tag 'searchRBN', 'staff', false, :onchange => "checkRadioButton()" %>
        <%= label_tag :byStaff_staff, "Staff" %>
        <%= radio_button_tag 'searchRBN', 'ocmw', false, :onchange => "checkRadioButton()" %>
        <%= label_tag :byOcmw_ocmw, "OCMW" %>
        <%= radio_button_tag 'searchRBN', 'mutuality', false, :onchange => "checkRadioButton()" %>
        <%= label_tag :byMutuality_mutuality, "Mutuality" %>
        <%= hidden_field_tag :hidden_one, "1" %>
    <% end %>
</div>

<div id="searchByPatient">
    <%= form_tag patients_path, :method => 'get' do %>
        <p>
            <%= text_field_tag :search1, params[:search1] %>
            <%= submit_tag "Search", :name => nil %>
        </p>
    <% end %>
</div>

控制器:

def index
    @staff_all = Staff.all
    @ocmw_all = Ocmw.all
    @mutuality_all = Mutuality.all
    debugger
    if params[:hidden_one] == '1'
      @patients = Patient.searchByName(params[:search1])
    elsif params[:hidden_one] == '2'
      @patients = Patient.searchByStaff(params[:search2])
    else
      @patients = Patient.all
    end
end

【问题讨论】:

    标签: ruby ruby-on-rails-3 params hidden-field


    【解决方案1】:

    这是因为你有两种形式。当您提交第二个表单时,它不会发送第一个表单的字段。如果您将所有内容放在一个表单中,它将按预期工作。

    【讨论】:

    • 你救了我!非常感谢!
    【解决方案2】:

    仅使用单一形式: 作为一种解决方法,在一个表单中使用两个提交标签: 用params[:action]区分这两个动作

    例如:

    <%= form_for :attachment_metadata, :url=>{:action=>'delete_files'}, :html=>{:onsubmit=> "return confirm('Are you sure, you want to delete selected files?');",:multipart => true} do |f| %>
       <table>
         ..........Some stuff here..........
       </table> 
    <%= submit_tag 'Reprocess', :class =>'button' %>
    <%= submit_tag 'Remove', :class =>'button' %>
    <% end %>
    

    params[:commit]可以区分两个提交标签的动作。

    @action = params[:commit]
    

    如果您单击“重新处理”按钮,它会将@action 值作为“重新处理”,如果您单击“删除”按钮,则它会提供“删除”值,

    然后你就会得到你的价值观。

    【讨论】:

      猜你喜欢
      • 2017-08-03
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多