首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >google地图自动弹回已清除的文本...odd....odd...odd

google地图自动弹回已清除的文本...odd....odd...odd
EN

Stack Overflow用户
提问于 2014-02-07 01:45:24
回答 1查看 1.3K关注 0票数 2

我有这种奇怪的行为从谷歌地图自动完成(或可能我错过了某事物)。想法?奇怪的是:

  1. 你在输入中输入了某物。“伦敦”

  1. 按ENTER键
  2. 你按下透明按钮
  3. 你点击“输入”
  4. 单击“输入”外部

.然后瞧!步骤3中已经清除的文本(本例中的“伦敦”)是否正确返回到input...Why?

这是密码:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head>
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places"></script>
</head>
<body>

    <h1>MY FORM</h1>
    <input type='text' id='myInput' size='50' placeholder='Enter text'>
    <input type='button' value='clear' onclick='clearInput()'>

    <script>
                var myInput = document.getElementById('myInput');
                var autocomplete = new google.maps.places.Autocomplete(myInput);
                function clearInput(){
                    myInput.value = '';
                }

                myInput.addEventListener('change', function(){
                        console.log(event['target']['value']);

                }, false);

    </script>
    </body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2014-02-07 05:35:39

回答“为什么”复杂,因为API源的源是压缩的,很难说出到底发生了什么。

当然,输入的值必须存储在某个地方,因为在某些情况下必须恢复它(例如,当您在下拉列表的值之间切换时)。

基本上,自动完成是侦听输入中的4个事件:

代码语言:javascript
运行
复制
focus, keydown, keyup, blur

这些事件都不会在您的函数中触发,因此自动完成可能不会识别新的值。

可能的解决方案:在您的函数中触发这些事件:

代码语言:javascript
运行
复制
function clearInput(){
  google.maps.event.trigger(myInput,'focus');
  myInput.value = '';
  google.maps.event.trigger(myInput,'keydown',{keyCode:46});
  google.maps.event.trigger(myInput,'keyup',{keyCode:46});
  google.maps.event.trigger(myInput,'blur');
}

您可以发送错误报告,这不是预期的行为,应该修复.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21617795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档