【问题标题】:Concatenating adjacent form fields into hidden field value in Rails将相邻的表单字段连接到 Rails 中的隐藏字段值
【发布时间】:2011-12-18 09:27:09
【问题描述】:

我想连接两个表单文本字段值并将它们分配给我在 Rails 视图中的隐藏表单字段:

<%= f.hidden_field :shortcode, :value => :package :pins %><br />                                                                                                       

  <div class="field">                                                                                                                                                           
    <%= f.label :package_type %><br />                                                                                                                                          
  <%= select("package", "package_type_id", PackageType.all.collect {|p| [p.packagetype, p.id]} ) %>                                                                             
  </div>                                                                                                                                                                        
  <div class="field">                                                                                                                                                           
    <%= f.label :pins %><br />                                                                                                                                                  
    <%= f.text_field :pins %>                                                                                                                                                   
  </div>                             

我希望 :shortcode 返回输入到各自表单字段中的 :package + :pins 值的串联值。

我该怎么做?

编辑以显示用于将其实现为“答案”的代码:

$('#package_pins').blur(function() {                                                                                                                                        
    var combined = $('select#package_package_type_id option:selected').text() + $('#package_pins').val();                                                                   
    $('#package_shortcode').val(combined);                                                                                                                                  
});  

将此代码添加到我在 app/assets/javascripts 目录中的“packages.js”中。

请注意,因为 package_type 选择器在模型中拉入了 belongs_to 记录,所以选择选项会像这样填充:

<select id=package_package_type_id name="package[package_type_id]">
<option value="551">FFG</option>
<option value="552">FFC</option>
<option value="553">FTA</option>
</select>

我想从“FFG”文本中获取什么,而不是值“551”,在这种情况下,它是来自 ActiveRecord 的记录 ID。我可以通过使用 option:selected').text() jquery 代码来做到这一点。

再次感谢@maprihoda 为我指明了正确的方向!

【问题讨论】:

    标签: ruby-on-rails view hidden-field


    【解决方案1】:

    您需要为此编写一些客户端 Javascript 代码。使用例如 JQuery,您可以轻松获取包和引脚字段的值(在用户填写引脚字段后),将它们连接起来,并更新隐藏字段的值。

    大致是这样的(您需要将正确的类添加到包装字段的 div 中才能正常工作):

    $('selector for the pins field').blur(function() {
      combined = $('selector for the package_type field').val() + $('selector for the pins field').val()
      $('selector for the hidden field').val(combined)
    })
    

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多