javascript - 使用 javascript 数据填充 Rails 参数

标签 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);

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

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

现在表单应该根据这些 JS 生成的变量生成参数。隐藏值是不可能的,因为 ERB 是在 jasvascript 生成任何数据之前在服务器端生成的。

<%= 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 %>

如何为下一个 Controller 操作生成参数?

此应用程序启用了 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 block

最佳答案

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

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

关于javascript - 使用 javascript 数据填充 Rails 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527755/

相关文章:

javascript - 有没有办法让 webrtc 视频录制在端口被阻止的安全网络上工作?

javascript - 单击 Flash 时事件不会在某些浏览器中冒泡

ruby-on-rails - rails 跳过 Controller /方法中的 after_action

ruby-on-rails - 使用上下文在 Rails 中链接范围的问题

javascript - 使用 request-promise 在 Electron 中链接 HTTP 请求

javascript - 如何测试一个方法是否在 Jest 中返回一个类的数组

javascript - 使用 d3 获取对象的值

ruby-on-rails - Rails 4.2 保存 has_and_belongs_to_many 关联 ID

javascript - 如何将 Rails 数据传递给 JavaScript?

ruby-on-rails - 使用 simple_form 设计重定向并在失败时显示错误消息