在表单提交之前实现客户端地理编码并不起作用

时间:2016-05-02 19:23:40

标签: javascript jquery ruby-on-rails google-api geocoding

在我的Rails应用程序中,我希望用户在输入字段中输入地址,然后应用程序应对其进行地理编码并在服务器上发送协调参数。

我的计算纬度和经度隐藏了字段。我尝试使用JQuery,以便当用户提交表单时它会阻止默认操作,地理编码逻辑,填充隐藏的输入字段,然后实际提交表单。

嗯,问题是我的javascript代码有问题,因为地理编码不起作用。

这是我的代码:

视图/当地人/ _form.html.erb

$( document ).ready(function() {
    $(function() {
    $('#new_local').click(function(e){
        e.preventDefault();
        var address_to_geocode = document.getElementById('local_address').value();
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({address: address_to_geocode },     function(results, status) {

            var coordinates = results[0].geometry.location;
            $("#local_latitude").val( coordinates.lat() );
            $("#local_longitude").val( coordinates.lng() );

        });
        $('#new_local').submit();
        })
    })
});

资产/ JavaScript的/ locals.js:

print "In the Following Program Enter Your Top 10 Favorite Netflix Movies When Prompted"

print ""

limit = 10

movieslist = []

while len(movieslist) < limit:  

    movie = raw_input("Enter The Name Of Your Top Movie(s) From Netflix" )
    print 
    movieslist.insert(0,movie)

print "The Following Is A List Of Your Top 10 Favorite Netflix Movies:"

for x in movieslist:
    print x

我的API密钥包含在application.html.erb中 在控制器位置允许纬度和经度。

有谁看到错误在哪里?

1 个答案:

答案 0 :(得分:0)

也许你应该试试geocomplete 或者如果你想将你的地址保存到db,就像lat / lon一样 geocoder gem

geocoded_by :full_street_address # can also be an IP address after_validation :geocode # auto-fetch coordinates