【问题标题】:Hidden_field_tag values are missing during submission of a form_for form提交 form_for 表单期间缺少 Hidden_​​field_tag 值
【发布时间】:2016-02-05 02:59:31
【问题描述】:

我有一个使用 form_for 助手的表单,在这个表单中我包含了一些我正在通过 javascript 更新的 hidden_​​field_tags,

这是表格:

 <% form_for :ticket, @ticket, :url => { :controller => 'provider/tickets', :action => 'create'}, :html => { :id => "new_ticket", :multipart => true } do |f| %>
 <%= f.error_messages %>
 <p>
  <%= f.label :Regarding %><br />
  <%= f.text_field :title %>
  <%= hidden_field_tag :general_comments, '', :id => "general_comments" %>
  <%= hidden_field_tag :resident_id, @resident.id %>
  <%= hidden_field_tag :send_type, 'everyone', :id => "send_type" %>
  <%= hidden_field_tag :email, true, :id => "email_value" %>
  <% @categories.each do |category_comments_|%>
  <%= hidden_field_tag "category_comments_" + category_comments_.id.to_s , '', :id => "category_comments_" + category_comments_.id.to_s %> 
 <% end %>
 </p>
 <%= f.submit 'Create' %>
 </p>
 <% end %>

我正在通过 javascript 更新 hidden_​​field_tag,当我在浏览器中查看时,它被分配了值,

但是如果我提交表单,这个 hidden_​​field_tag 的参数是空的,我不知道为什么会这样,请在提交时查看下面的屏幕截图以查看空参数。

但是如果我在 form_tag 中使用相同的字段,它工作正常,如果我在 form_for 中使用它,它就不起作用。

这个循环中的值只是没有正确提交,

   <% @categories.each do |category_comments_|%>
    <%= hidden_field_tag "category_comments_" + category_comments_.id.to_s , '', :id => "category_comments_" + category_comments_.id.to_s %> 
   <% end %>

由于应用太旧,版本为 Ruby 1.8.7 和 Rails 2.3。谁能帮我解决这个问题。

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2


    【解决方案1】:

    根据文档:http://apidock.com/rails/ActionView/Helpers/FormHelper/hidden_field

    您可以使用 :value 参数向隐藏字段添加值

    示例:

    hidden_field(:object, :field, :value => params[:requestval])
    

    通过 javascript 更新值时,您可能需要设置如下:

    f.hidden_field :field_name, {:value => ''}
    

    正如他们在Hidden Field Submission中建议的那样

    【讨论】:

    • 我已经将值作为空字符串''给出,它将被javascript更新替换。
    【解决方案2】:

    我发现了问题,

    我在 hidden_​​field_tag 的名称中使用了字符串而不是 :symbol。现在我将字符串更改为符号,现在所有值都在提交表单时使用参数发送。

    这是我已经拥有的,

    <% @categories.each do |category_comments_|%>
    <%= hidden_field_tag "category_comments_" + category_comments_.id.to_s , '', :id => "category_comments_" + category_comments_.id.to_s %> 
    <% end %>
    

    现在我像下面这样改变了,

    <% @categories.each do |category_comments_|%>
             <% specific_category = "category_comments_" + category_comments_.id.to_s %>
      <%= hidden_field_tag specific_category.parameterize.underscore.to_sym, '', :id => "category_comments_" + category_comments_.id.to_s %>
    <% end %> 
    

    现在可以正常使用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2011-01-31
      • 2017-03-06
      相关资源
      最近更新 更多