javascript – Google Places Autocomplete SearchBox:如何控制(启用/禁用)预测

前端之家收集整理的这篇文章主要介绍了javascript – Google Places Autocomplete SearchBox:如何控制(启用/禁用)预测前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以控制(启用/禁用)Google商家信息自动填充SearchBox(google.maps.places.SearchBox)服务预测?

或者换句话说:是否可以暂时从自动完成SearchBox服务中分离HTML输入元素,然后重新附加它?

问题是我显示的服务结果只是附加到SearchBox服务的HTML输入元素.问题是,在显示结果并且用户重新关注输入元素之后,预测将显示在结果上并模糊其视图.我想禁用预测,直到用户更改input元素中的文本.

编辑26 / Aug / 2016:

Javascript API目前不支持禁用预测.因此,我刚刚在Google上发布了一项功能请求.如果您对该功能感兴趣,请投票支持Autocomplete SearchBox – Control (enable/disable) predictions..

编辑07 / Sep / 2016 – 赏金奖励更新:

感谢所有参与回答和推广问题的人.

该奖项的主要目标是使用现有的手段找到解决方案.我担心这不会发生,所以我决定不给予赏金.

虽然没有一个答案提供解决方案,但每个都提供了某种形式,所以谢谢!也许这些线索将来会指向一个解决方案.

奖励的次要目标(虽然没有直接传达)是为了宣传Autocomplete SearchBox – Control (enable/disable) predictions功能请求.其状态更改为NeatIdea,并已分配内部跟踪号码.这是一个好兆头.

解决方法

您可以做的是,在用户选择该位置后,您可以向该输入字段添加禁用的类..,这将帮助您根据类名启用/禁用预测.

如果您有自动完成代码,可以将其包含在if else语句中.

let field = document.getElementById('location');
if ( field.className.indexOf('disabled') > -1 ) {
  google.maps.event.clearInstanceListeners(field);
}
else {

  let autocomplete = new google.maps.places.Autocomplete( field,{types: ['geocode']} );
  autocomplete.addListener('place_changed',() => {
    let place = autocomplete.getPlace();
    let filed_val = field.value; // incase you need it
    field.classList.add('disabled');
  });

}

这将在用户选择一个地点后删除自动完成功能..如果需要,您可以从此字段中删除已禁用的类,它将再次起作用.

猜你在找的JavaScript相关文章