以下表单旨在使用 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/