Google会映射自动填充变量问题

时间:2016-09-03 00:34:49

标签: javascript forms google-maps autocomplete

我在所有页面上加载了以下代码(所有功能都包含在一起)。但输入 location1 location2 仅存在其中一个页面。并且不会影响功能性,但每次我检查不存在这些输入的页面上的javascript日志时,我会收到错误“InvalidValueError:不是HTMLInputElement的实例”(Firefox)。

JavaScript的:

Spinner

和这个空间页面上的非常基本的表单输入(预先填充)控制台错误没有显示:

HTML:

     var autocomplete1 = new google.maps.places.Autocomplete($("#location1")[0], {});
            google.maps.event.addListener(autocomplete1, 'place_changed', function() {
                var place1 = autocomplete1.getPlace();
            });

     var autocomplete2 = new google.maps.places.Autocomplete($("#location2")[0], {});
            google.maps.event.addListener(autocomplete2, 'place_changed', function() {
                var place2 = autocomplete2.getPlace();
            });

我想知道我能做些什么来避免这个错误?任何建议

2 个答案:

答案 0 :(得分:0)

是的,你可以通过测试像这样的醋栗页面来避免它

var x = location.href // this will give you the absolute url of the page

    if(x=="the url of page where the input exist"){
       var autocomplete1 = new google.maps.places.Autocomplete($("#location1")[0], {});
                google.maps.event.addListener(autocomplete1, 'place_changed', function() {
                    var place1 = autocomplete1.getPlace();
                });
    }

因此,通过这种方式,脚本将不会进入该块,直到它验证该伪造

答案 1 :(得分:0)

好吧,我想出了什么。但是如果有任何改进的话,请评论。

var location1 = $("#location1").val();
if (location1 === undefined ){} else {
            var autocomplete1 = new google.maps.places.Autocomplete($("#location1")[0], {});
            google.maps.event.addListener(autocomplete1, 'place_changed', function() {
                var place1 = autocomplete1.getPlace();
            });
}

var location2 = $("#location2").val();
if (location2 === undefined ){} else {
            var autocomplete2 = new google.maps.places.Autocomplete($("#location2")[0], {});
            google.maps.event.addListener(autocomplete2, 'place_changed', function() {
                var place2 = autocomplete2.getPlace();
            });
}