Javascript API返回的信息在代码笔上出现1秒后消失。为什么?

Javascript API返回的信息在代码笔上出现1秒后消失。为什么?,javascript,api,Javascript,Api,你应该进入一个类似11362的zipde,然后在城市名称下获得“小脖子”“小脖子”在代码笔窗口中出现了片刻,然后消失了。为什么? 我想我没有对我的代码做任何修改。但不知怎的,我把API url打错了。我不知道。信息就在那里。请求成功了,而且部分成功 代码: var-button=document.getElementById('submit'); var-zipcode; /*获取用户输入的内容*/ addEventListener(“单击”,获取值); 函数getValue(){ zipc

你应该进入一个类似11362的zipde,然后在城市名称下获得“小脖子”“小脖子”在代码笔窗口中出现了片刻,然后消失了。为什么?

我想我没有对我的代码做任何修改。但不知怎的,我把API url打错了。我不知道。信息就在那里。请求成功了,而且部分成功

代码:

var-button=document.getElementById('submit');
var-zipcode;
/*获取用户输入的内容*/
addEventListener(“单击”,获取值);
函数getValue(){
zipcode=document.getElementById('zipcode').value;
getCity();
}
//谷歌地理编码API请求
函数getCity(){
var req=新的XMLHttpRequest;
req.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
var myData=JSON.parse(this.responseText);
var myCity=myData.results[0]。地址\组件[1]。短\名称;
document.getElementById('city')。innerHTML=myCity;
}//如果函数结束
}//onreadystate函数结束
请求打开('GET','https://maps.googleapis.com/maps/api/geocode/json?address=“+zipcode,true);
请求发送();
}

  • 城市名称:

  • 温度(C/F):
  • 图标:
  • 天气:

  • 风:
  • 日出:
  • 天气:

  • 表单提交试图向表单操作发出请求,在本例中,没有操作,因此表单将只重新加载页面

    这就是它消失的原因

    您需要添加:

    e.preventDefault();
    
    在click event listener中,必须防止默认行为,才能执行侦听器中的代码

    function getValue(e){
      e.preventDefault();
      zipcode=document.getElementById('zipcode').value;
      getCity();
    }
    
    var-button=document.getElementById('submit');
    var-zipcode;
    /*获取用户输入的内容*/
    addEventListener(“单击”,获取值);
    函数getValue(事件){
    event.preventDefault();
    zipcode=document.getElementById('zipcode').value;
    getCity();
    }
    //谷歌地理编码API请求
    函数getCity(){
    var req=新的XMLHttpRequest;
    req.onreadystatechange=函数(){
    if(this.readyState==4&&this.status==200){
    var myData=JSON.parse(this.responseText);
    var myCity=myData.results[0]。地址\组件[1]。短\名称;
    document.getElementById('city')。innerHTML=myCity;
    }//如果函数结束
    }//onreadystate函数结束
    请求打开('GET','https://maps.googleapis.com/maps/api/geocode/json?address=“+zipcode,true);
    请求发送();
    }
    
    
  • 城市名称:

  • 温度(C/F):
  • 图标:
  • 天气:

  • 风:
  • 日出:
  • 天气:

  • 表单提交试图向表单操作发出请求,在本例中,没有操作,因此表单将只重新加载页面

    这就是它消失的原因

    您需要添加:

    e.preventDefault();
    
    在click event listener中,必须防止默认行为,才能执行侦听器中的代码

    function getValue(e){
      e.preventDefault();
      zipcode=document.getElementById('zipcode').value;
      getCity();
    }
    
    var-button=document.getElementById('submit');
    var-zipcode;
    /*获取用户输入的内容*/
    addEventListener(“单击”,获取值);
    函数getValue(事件){
    event.preventDefault();
    zipcode=document.getElementById('zipcode').value;
    getCity();
    }
    //谷歌地理编码API请求
    函数getCity(){
    var req=新的XMLHttpRequest;
    req.onreadystatechange=函数(){
    if(this.readyState==4&&this.status==200){
    var myData=JSON.parse(this.responseText);
    var myCity=myData.results[0]。地址\组件[1]。短\名称;
    document.getElementById('city')。innerHTML=myCity;
    }//如果函数结束
    }//onreadystate函数结束
    请求打开('GET','https://maps.googleapis.com/maps/api/geocode/json?address=“+zipcode,true);
    请求发送();
    }
    
    
  • 城市名称:

  • 温度(C/F):
  • 图标:
  • 天气:

  • 风:
  • 日出:
  • 天气:

  • 防止提交按钮的默认行为

    function getValue(e){
      e.preventDefault();
      zipcode=document.getElementById('zipcode').value;
      getCity();
    }
    
    p.S.

    按钮。addEventListener('click',getValue)
    这里,
    getValue
    是对触发
    按钮
    event
    click
    时调用的函数的引用(引用不应采用参数;将其视为指向函数声明的指针)。一旦
    按钮
    单击
    ed,默认情况下将事件对象传递给您的单击处理程序
    getValue
    。定义此函数时,您可以作为param访问事件对象。您可以给它任何别名,但最常见的别名是
    e
    event


    函数getValue(yourEventAlias){…}
    然后如果要防止提交按钮的默认行为,请添加
    yourEventAlias.preventDefault()添加到函数体。

    防止提交按钮的默认行为

    function getValue(e){
      e.preventDefault();
      zipcode=document.getElementById('zipcode').value;
      getCity();
    }
    
    p.S.

    按钮。addEventListener('click',getValue)
    这里,
    getValue
    是对触发
    按钮
    event
    click
    时调用的函数的引用(引用不应采用参数;将其视为指向函数声明的指针)。一旦
    按钮
    单击
    ed,默认情况下将事件对象传递给您的单击处理程序
    getValue
    。定义此函数时,您可以作为param访问事件对象。您可以给它任何别名,但最常见的别名是
    e
    event


    函数getValue(yourEventAlias){…}
    然后如果要防止提交按钮的默认行为,请添加
    yourEventAlias.preventDefault()到函数体。

    为什么要使用参数e?在事件处理程序中调用getValue函数时,没有参数。
    e
    是触发它的
    事件(事件始终作为