将相邻的表单字段连接到Rails中的隐藏字段值

时间:2011-12-17 19:33:59

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

我想连接两个表单文本字段值并将它们分配到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,在这种情况下。我能够通过使用选项:selected')。text()jquery代码来完成此操作。

再次感谢@maprihoda指出我正确的方向!

1 个答案:

答案 0 :(得分:0)

您需要为此编写一些客户端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)
})