2016-07-06 53 views
-1

你好IM和后用户提交我想保存他经度和纬度的形式,但问题已经出现与形式获取用户位置使用HTML5地理位置提交

我提交按钮做一个onclick =“”事件当按钮被按下时,js将获得协调并将它们放到表单中的隐藏字段中,表单将被发送到php,但是每当我提交表单时,小弹出窗口就会出现,并要求获得许可的位置,它立刻消失这可能是因为刷新页面的PHP,我该怎么办?正如我已经说过的,当你点击提交表单按钮时,js将被触发并在权限被接受后请求许可,隐藏字段将填充协调数据,然后表单将被发送到服务器,但是,在我按下后按钮然后弹出关于允许位置将出去一秒钟,立即消失,页面将刷新没有结果,我该如何解决这个问题?

+0

你应该首先否认从beeing发送的形式('e.preventDefault()'),不是等待,直到用户大奖赛的权限...或可能否认并处理他的投入 – Dwza

回答

-1

*从Chrome 50开始,Geolocation API仅适用于安全上下文,如HTTPS。如果您的网站存在 位于非安全来源(例如HTTP)上,则获取用户 位置的请求将不再有效。要解决这个

0

一个简单的方法是运行检测位置,并询问许可时形式的第一负载的网页,而不是当它是提交 JS代码。

你的问题是,你试图在表单提交时同时执行javascript。除非您重写默认行为,否则无论在onclick事件中运行哪些脚本,该表单都会提交,并且不会等待它们。

另一种方式是覆盖默认的提交行为。假设你已经jQuery的加载处理click这样的:

$(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. 
    }); 
});