【问题标题】:execute geolocate javascript before form post在表单发布之前执行地理定位 javascript
【发布时间】:2016-02-18 14:09:00
【问题描述】:

我试图在提交表单之前执行一些 jquery。

目的是获取用户位置,并在表单发布前保存坐标。

但它发生得太快了,似乎没有被完全执行。 共享位置的弹出窗口会在一瞬间显示表单发布,然后我才能回答是共享位置

$("#DepotSearchForm").submit(function () {


        // your code here

            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function (position) {
                    var pos = {
                        lat: position.coords.latitude,
                        lng: position.coords.longitude
                    };
                    $('#Latitude').val(position.coords.latitude);
                    $('#Longitude').val(position.coords.longitude);
                    alert(position.coords.latitude + ", " + position.coords.longitude);
                    //gmap.setCenter(pos);
                }, function () {
                    //alert("Unable to determine location");
                    //return false;
                });
            } 

    //  }
});

【问题讨论】:

    标签: javascript jquery geolocation


    【解决方案1】:

    geolocation 是异步的,因此您的表单确实在完成之前就已提交。

    选择是在页面加载时设置位置值,或者您可以阻止 jQuery 提交事件并在地理定位完成时使用本机提交。

    $("#DepotSearchForm").submit(function(event) {
      // prevent jQuery submit occurrung
      event.preventDefault();
      var form = this;    
    
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
    
          $('#Latitude').val(position.coords.latitude);
          $('#Longitude').val(position.coords.longitude);
          alert(position.coords.latitude + ", " + position.coords.longitude);
    
          // tigger native submit
          form.submit();
    
        }, function() {
           // handle geolocation error
        });
      }
    });
    

    您还应该在 UI 中执行某些操作以指示正在处理表单并防止用户在处理地理定位时再次提交

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多