使用javascript数据填充rails params

时间:2015-12-30 10:35:23

标签: javascript ruby-on-rails-4.2

以下表单旨在使用HTML5地理位置数据提交数据。

javascript

function geoOk(position)
{
  default_latitude = position.coords.latitude;
  default_longitude = position.coords.longitude;
  $('#my_latitude').html(default_latitude);
  $('#my_longitude').html(default_longitude);

正确生成数据,可以在视图中显示:

<span id="my_latitude"></span> => <span id="my_longitude"></span>

现在表单应该基于这些JS生成的变量生成params。由于在jasvascript生成任何数据之前在服务器端生成ERB,因此无法使用隐藏值。

<%= form_tag(:find_by_my_locations, method: :post) do %>
  <%= check_box_tag :location_ok, params[:location_ok] %><%= t('my_location_confirm') %><br />
  <%= submit_tag %>
<% end %>

如何为下一个控制器动作生成参数?

在此应用程序上启用了jQuery。

修改

document.querySelector('#form_latitude').value = position.coords.latitude;
document.querySelector('#form_longitude').value = position.coords.longitude;

和表格

  <%= hidden_field_tag "form_longitude" %> 
  <%= hidden_field_tag "form_latitude" %> 

工作时无需准备好文档JS bloc

1 个答案:

答案 0 :(得分:1)

一旦文档加载后你可以创建另一个函数,它可以通过jquery检索所需的值并将它们添加到隐藏字段。

  $(document).ready(function(){
    var longitude = $("#longitude").text();
    $("#hidden_field").val(longitude);
  });