你好我使用HTML5地理位置,用户提交表格后我想存储他的经度和纬度但是出现了问题
我做了一个onclick =""提交按钮上的事件,当按下按钮时,js将获得协调并将它们放入表单中的隐藏字段,表单将被发送到php但是,每当我提交表单时,小弹出窗口就会出现并且它要求获得该位置的许可,它可能因为刷新页面的PHP而暂时消失,我该怎么办?正如我已经说过,当你单击提交表单按钮时,js将被触发,并且在接受权限后将要求许可,隐藏字段将填充协调数据,然后表单将被发送到服务器但是,在我按下之后按钮然后弹出关于允许该位置将弹出一秒钟,并立即消失,页面将刷新没有结果,我该如何解决这个问题?
答案 0 :(得分:0)
解决此问题的一种简单方法是运行检测位置的JS代码,并在表单首次加载页面时请求权限,而不是在提交时
您的问题是,您尝试在表单提交时同时执行javascript。除非您覆盖默认行为,否则无论在onclick事件中运行什么脚本,表单都会提交,并且不会等待它们。
另一种方法是覆盖默认的提交行为。假设您已加载jQuery,请按以下方式处理单击:
$(function() {
$("#mySubmitButton").click(function(event) {
event.preventDefault(); //stops the form from submitting
//here write the code which asks for the location and puts it in the hidden fields
$("#myForm").submit(); //only now do we submit the form, manually.
});
});
答案 1 :(得分:-1)
*自Chrome 50起,Geolocation API仅适用于HTTPS等安全上下文。如果 您的站点托管在非安全源(例如HTTP)上以获取用户的请求 位置将不再有效。