Javascript jQuery和谷歌地图自动完成
我让Google Maps Autocomplete处理几个Javascript jQuery和谷歌地图自动完成,javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,我让Google Maps Autocomplete处理几个输入标记,如下所示: <input class="controls pac-input" id="pac-input" type="text" onfocus="geolocate()" placeholder="Type custom address" /> 然后,在MyFunc()函数中,我执行我需要的操作: function MyFunc() { var fullAddress = autocomplete
输入
标记,如下所示:
<input class="controls pac-input" id="pac-input" type="text" onfocus="geolocate()" placeholder="Type custom address" />
然后,在MyFunc()
函数中,我执行我需要的操作:
function MyFunc() {
var fullAddress = autocomplete.getPlace().formatted_address;
var input = $(this);
//stuff that uses input
}
但是,该代码有两个问题:
- 首先,我使用一个Id来影响多个输入框(我有许多输入字段)。我尝试按类选择,但失败,错误为“未定义”。如何将该函数应用于输入字段集合
- 我如何知道正在单击哪个字段?我尝试使用jquery
,但它不起作用。jQuery如何帮助我$(this)
提前谢谢 为了找出调用的是哪个输入元素,可以将事件传递给
MyFunc()
。使用$(this)
不会检查该函数的外部以查看调用它的内容
将addListener
更新为以下内容
google.maps.event.addListener(autocomplete, 'place_changed', function (e) {
MyFunc(e);
});`
并将MyFunc()
更新为
function MyFunc(e) {
var fullAddress = autocomplete.getPlace().formatted_address;
var input = e;
//stuff that uses input
}
然后,您可以使用input
作为变量,保存有关正在更新的元素的信息。如果您执行console.log(输入)var输入=e下方的code>代码>您将看到可用于获取数据的项目列表
您可能最感兴趣的是设置var input=e代码>至var输入=e.target代码>取而代之。这将允许您轻松获取有关输入的信息
示例:input.value
将返回相关输入的值。为了找出调用的是哪个输入元素,可以将事件传递给MyFunc()
。使用$(this)
不会检查该函数的外部以查看调用它的内容
将addListener
更新为以下内容
google.maps.event.addListener(autocomplete, 'place_changed', function (e) {
MyFunc(e);
});`
并将MyFunc()
更新为
function MyFunc(e) {
var fullAddress = autocomplete.getPlace().formatted_address;
var input = e;
//stuff that uses input
}
然后,您可以使用input
作为变量,保存有关正在更新的元素的信息。如果您执行console.log(输入)var输入=e下方的code>代码>您将看到可用于获取数据的项目列表
您可能最感兴趣的是设置var input=e代码>至var输入=e.target代码>取而代之。这将允许您轻松获取有关输入的信息
示例:input.value
将返回相关输入的值。您不需要jQuery来完成此操作。下面是一个仅使用javascript的工作示例:
HTML:
希望这能有所帮助。您不需要jQuery来实现这一点。下面是一个仅使用javascript的工作示例:
HTML:
希望这有帮助。请发布您的MyFunc()
函数和输入。@RhapX:done!我按要求更新了帖子!为什么有多个输入?有什么意义?@MrUpsidown:我有一个包含多个地址的表,我希望用户能够指定它们。因此,每个条目都有一个输入字段供用户键入地址。请发布您的MyFunc()
函数和输入。@RhapX:done!我按要求更新了帖子!为什么有多个输入?有什么意义?@MrUpsidown:我有一个包含多个地址的表,我希望用户能够指定它们。因此,每个条目都有一个输入字段供用户键入地址。当我尝试您的解决方案时,会出现未定义的
错误:S有其他方法吗?当我尝试您的解决方案时,会出现未定义的
错误:S有其他方法吗?确实有帮助!赏金autocomplete.inputId=$(this.attr('id')代码>正在搜索如何访问输入。我记不起我用过多少次了。。衣冠楚楚的确实有帮助!赏金autocomplete.inputId=$(this.attr('id')代码>正在搜索如何访问输入。我记不起我用过多少次了。。衣冠楚楚的
var acInputs = document.getElementsByClassName("autocomplete");
for (var i = 0; i < acInputs.length; i++) {
var autocomplete = new google.maps.places.Autocomplete(acInputs[i]);
autocomplete.inputId = acInputs[i].id;
google.maps.event.addListener(autocomplete, 'place_changed', function () {
console.log('You used input with id ' + this.inputId);
});
}
$('.autocomplete').each(function() {
var autocomplete = new google.maps.places.Autocomplete($(this)[0]);
autocomplete.inputId = $(this).attr('id');
google.maps.event.addListener(autocomplete, 'place_changed', function () {
console.log('You used input with id ' + this.inputId);
});
});