-1

这是我尝试编写的第一个 JavaScript,但我运气不佳。

这是脚本应该做的:通过单击自动建议的位置或单击搜索按钮来对地址进行地理编码,如果我们还没有单击自动建议的结果。然后提交表格。

我运气不佳,似乎我在脚本上弄乱了括号,因为无论我做什么,它都会抱怨异常。

这是我的代码

geocode();

// SET COOKIE FOR TESTING PURPOSES   
    $.cookie("country", "US");

    // GEOCODE FUNCTION
    function geocode() {

        var coded = false;
        var input = document.getElementById('loc');
        var options = {
            types: ['geocode']
        };
        var country_code = $.cookie('country');
        if (country_code) {
            options.componentRestrictions = {
                'country': country_code
            };
        }
        var autocomplete = new google.maps.places.Autocomplete(input, options);
        google.maps.event.addListener(autocomplete, 'place_changed', function() {
        processLocation();
        });

// ON SUBMIT - WORK OUT IF WE ALREADY HAVE THE RESULTS FROM AUTOCOMPLETE FUNCTION
        $('#searchform').on('submit', function(e) {
             e.preventDefault();
             if(coded = false;) {
                processLocation();
             } 
             else {
                $('#searchform').submit();
             }
        });

// CHECK TO SEE IF INPUT HAS CHANGED SINCE BEING GEOCODED
// IF "CODED" VAR IS FALSE THEN WE WILL GEOCODE WHEN SEARCH BUTTON HIT         
        $("#loc").bind("change paste keyup", function() {
             var coded = false; 
        });

    };  

// GEOCODE THE LOCATION
    function processLocation(){

            var geocoder = new google.maps.Geocoder();
            var address = document.getElementById('loc').value;
            $('#searchform input[type="submit"]').attr('disabled', true);
            geocoder.geocode({
                'address': address
            },
                             
// RESULTS - STORE COORDINATES IN FIELDS OR ERROR IF NOT SUCCESSFUL
            function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    var coded = true;
                    $('#lat').val(results[0].geometry.location.lat());
                    $('#lng').val(results[0].geometry.location.lng());
                } else {
                    var coded = false;
                    $('#searchform input[type="submit"]').attr('disabled', false);
                    alert("We couldn't find this location")
                }

            });
}

我哪里出错了?

PS:因为这是我的第一个脚本,如果我在设计中做出任何糟糕的选择,我很高兴收到反馈。我真的想让我的第一个脚本代码尽可能简洁。

4

1 回答 1

2

存在语法错误

if(coded = false;) {

应该

if(coded == false) {

检查控制台会告诉你这样的事情以及发生错误的地方......这是你固定的小提琴

于 2013-05-15T10:46:20.387 回答