- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
感谢所有帮助我的人!
目前,每次用户进入特定页面时,我都会获取用户的坐标,并且我正在尝试存储这些坐标来更新用户模型,其中包含“纬度”和“经度”字段。目前,如果用户按下“我在这里”按钮,它就可以工作,我正在尝试自动提交表单并隐藏按钮,但我没有成功。需要明确的是,我希望每次有人进入此特定页面时,他的用户模型都会使用新的“纬度”和“经度”进行更新,而无需他执行任何操作或看到任何内容。
*$("#new_coordinates").submit()(其中“新坐标”是表单 ID)当前不起作用,这就是带有按钮的 f.submit 仍然存在的原因。
这是我的代码
<p id="geoloc"></p>
<script>
var x = document.getElementById("geoloc");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getCoordinates);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function getCoordinates(position) {
var new_latitude = position.coords.latitude;
var new_longitude = position.coords.longitude;
$(document).ready(function () {
$("#latitude_field").val(new_latitude);
$("#longitude_field").val(new_longitude);
$("#new_coordinates").submit();
}
)
}
getLocation()
</script>
<%= form_for(current_user, :id=> "new_coordinates") do |f| %>
<%=f.hidden_field :latitude ,:id=> "latitude_field" %>
<%=f.hidden_field :longitude ,:id=> "longitude_field" %>
<%=f.submit "I'm here", class: "btn btn-small btn-primary jsbuttons"%>
<%end%>
最佳答案
您可以对 Controller 进行ajax调用来更新用户数据。假设我想在页面加载时更新用户数据,你可以使用jquery方法
.ready
$(document).ready(function(){
$.ajax({url: "/update_user", type: "POST", data: {name: "xxx", id: 5});
});
如果您想使用 JavaScript,请使用
<body>
HTML Content
<script>
(function() {
$.ajax({url: "/update_user", type: "POST", data: {name: "xxx", id: 5});
})();
</script>
</body>
此外,您还必须在 paths.rb 中添加“/update_user”来处理到达 Controller 中相应操作的请求。
更新:
收到 Controller 中的值后
users_controller.rb
def update_user
#you receive all the data in params
end
使用参数来检索数据并相应地使用。 params 是一个哈希值,您可以从键访问数据。然后您可以根据需要将这些值直接传递给方法。如果您希望它在模型上只是为了访问,您可以使用 attr_accessor。阅读有关内容,但我认为您并不真正需要它。
只需读取操作中的参数并相应地传递值即可。
关于javascript - Ruby on Rails : how to submit a hidden form automatically every time I refresh a page (no buttons),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443039/
我是一名优秀的程序员,十分优秀!